サーバ証明自動更新のエラー修正ほか

・エラー修正
サーバ証明の更新時にエラーメールが届く。
エラーは以下の通り

Attempting to renew cert (email.domain) from /etc/letsencrypt/renewal/email.domain.conf produced an unexpected error:
Problem binding to port 443: Could not bind to IPv4 or IPv6.. Skipping.
All renewal attempts failed. The following certs could not be renewed:
  /etc/letsencrypt/live/email.domain/fullchain.pem (failure)
1 renew failure(s), 0 parse failure(s)
完了しました。

letsencrypt導入時の設定が問題だった。certbot-auto renewal実行時にnginxが443ポートを使っているためエラーが生じていた。
認証方式をstandaloneからwebrootへ設定変更。/etc/letsencrypt/renewal/email.domain.confに以下を記述

#authenticator = standalone
authenticator = webroot
[[webroot_map]]
mail.domain = /usr/share/nginx/html

 

・本サイトのSSL化
諸事情で本サイトは SSL化せずにいた。wordpressのプラグイン修正で問題解決したためSSL化した。
調べればわかるが証明書発行は以下のコマンドでできる。

/usr/local/certbot/certbot-auto certonly --webroot -w /usr/share/nginx/html -d domain.name

リダイレクトの設定などはtsuchikazuさんという方のブログを参照

証明書を nginx へ設定

nginxの設定を変更してSSLを有効にしましょう。設定ファイルはこんな感じになります。

# httpはhttpsへリダイレクト
server {
  listen 80;
  server_name tsuchikazu.net;
  rewrite ^ https://$server_name$request_uri? permanent;
}
server {
    listen 443 ssl;

    server_name tsuchikazu.net;

    ssl_certificate /etc/letsencrypt/live/tsuchikazu.net/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/tsuchikazu.net/privkey.pem;
    ssl_session_timeout 1d;
    ssl_session_cache shared:SSL:50m;
    ssl_session_tickets on;
……

参照 Let’s Encryptの証明書をnginxに設定してhttps化した | tsuchikazu blog

Leave a Reply

Your email address will not be published.

CAPTCHA