HTTPS未対応のサイトはブラウザに「保護されていない通信」と表示され、検索順位でも不利になります。朗報:Let's Encryptは完全無料のSSL証明書を提供しており、数分でHTTPS化できます。本ガイドはNginx + Certbotを使います。

1. HTTPSが必須の理由

  • ブラウザはHTTPサイトに「保護されていません」と表示し、訪問者が離脱します。
  • GoogleはHTTPSを明確にランキングシグナルとしており、非暗号化サイトは不利です。
  • HTTPSなしでは決済やログインのデータが漏洩します。

2. 前提条件

  • パブリックIPを持ちNginxがインストール済みのVPS。
  • AレコードがすでにVPSのIPを指しているドメイン(発行時にドメイン所有権を検証します)。
  • ファイアウォールで80番と443番ポートを開放。

3. Certbotのインストールと証明書発行

Ubuntuの場合:

  • インストール:apt install certbot python3-certbot-nginx
  • 発行とNginx自動設定:certbot --nginx -d example.com -d www.example.com
  • プロンプトに従ってメールアドレスを入力・規約に同意し、HTTPからHTTPSへの自動リダイレクトを選択(推奨)。

4. 自動更新

Let's Encrypt証明書の有効期間は90日ですが、Certbotが自動更新のタイマーを設定します。certbot renew --dry-runで確認し、エラーがなければ更新は正常で、以後手動管理は不要です。

5. よくある問題

  • 発行に失敗する:ドメインがこのホストを指していないか、80番ポートが使用中/ファイアウォールでブロックされているのが典型です。
  • まだ「保護されていません」と表示される:キャッシュをクリアして強制再読み込みし、ページ内にhttp://の画像やスクリプトが残っていないか(混在コンテンツ)確認しましょう。