Let’s Encrypt SSL証明書を発行するための方法です。(環境:CentOS7,Apacheの場合)
webroot認証での証明書作成は、いたって簡単です。
gitで最新版のcertbotをダウンロードし、certbot-autoコマンドを実行するだけです。
(example.comとwebroot-pathの箇所は ご自身の環境に合わせ変更を。)
1 2 3 |
$ yum install git $ git clone https://github.com/certbot/certbot.git $ ./certbot/certbot-auto certonly --agree-tos --email info@example.com --webroot --webroot-path /var/www/example.com -d example.com -d www.example.com |
上記コマンドが成功し、「 Congratulations! Your certificate and chain have been saved at」と出たら、無事SSL証明書が完成です。非常に簡単ですね。
コマンド実行時にエラーが出る場合は、
webroot上に 認証のために必要な.well-knownフォルダを作成できないか、
.well-knownへ外部からアクセスできない原因であることが多いので、
パーミッション権限とアクセス制限周りを確認しましょう。
◆apache設定(ssl.conf)
apacheの場合は、以下のようにSSL証明書を指定します。
1 2 3 |
SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem |
◆apache設定反映
$ apachectl configtest
で確認後、リロード処理
$ systemctl reload httpd
◆SSL証明書自動更新
自動更新をしたい場合は、crontabに以下のように設定しておきましょう。
有効期限が30日を切った証明書は自動的に新しい証明書を取得し反映してくれます。
(/path/はcertbotをインストールした場所に変更)
1 |
1 3 1 * * /path/certbot/certbot-auto renew --post-hook "systemctl reload httpd" |