VPS SSL証明書設定ガイド(Let's Encrypt)

無料SSL証明書でHTTPS化する手順。


前提条件

  • Nginxがインストール済み
  • ドメインがVPSのIPに向いている
  • ポート80/443が開いている

手順

01. Certbotインストール

sudo apt install certbot python3-certbot-nginx -y

02. 証明書取得

sudo certbot --nginx -d example.com -d www.example.com

メールアドレス入力、利用規約同意を求められる。

03. 自動更新確認

sudo certbot renew --dry-run

エラーがなければ自動更新設定済み。

04. ブラウザで確認

https://example.com にアクセス。鍵マークが表示されれば成功。

05. 完了


参考リンク


ここから先は、SSL設定のカスタマイズと問題解決を解説します。


Q&A - 証明書管理

証明書の有効期限確認

sudo certbot certificates

手動更新

sudo certbot renew

証明書削除

sudo certbot delete --cert-name example.com

Q&A - Nginx設定

HTTPからHTTPSへリダイレクト

Certbotが自動設定するが、手動の場合:

server {
    listen 80;
    server_name example.com;
    return 301 https://$server_name$request_uri;
}

SSL設定の場所

/etc/letsencrypt/live/example.com/
  • fullchain.pem: 証明書
  • privkey.pem: 秘密鍵

Q&A - トラブル

「Challenge failed」エラー

  • ドメインがVPSのIPに向いていない
  • ポート80がファイアウォールでブロック
  • Nginxが起動していない
確認:
sudo ufw status
sudo systemctl status nginx

「Too many requests」エラー

Let's Encryptのレート制限。1週間待つか、ステージング環境でテスト:

sudo certbot --nginx --staging -d example.com

ワイルドカード証明書

DNS認証が必要:

sudo certbot certonly --manual --preferred-challenges dns -d "*.example.com"

DNSにTXTレコードを追加する指示が出る。


タグ: #SSL #HTTPS #Let'sEncrypt #Certbot #VPS #セキュリティ
← VPS構築シリーズ一覧へ