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 #セキュリティ