Let's Encrypt 証明書発行(パッケージ版)¶
- Let's EncryptでのSSL証明書発行に関するページです。
前提条件¶
- このソフトウェアの構築には下記の導入が前提となります。
- epelリポジトリの登録
- 証明書の有効期限は3ヶ月です。よってcronでの自動更新を含めた解説を行います。
ダウンロード¶
インストール¶
- EPELリポジトリを有効にします
# yum install epel-release
- パッケージをインストールします
# yum install certbot certbot-apache
証明書の作成¶
- Apache/Nginxおよび80/443ポートをListenしているサービスを落とします。
# systemctl stop httpd
- 次のコマンドを実行します。
# certbot certonly --standalone -d www.example.com -m postmaster@example.com --agree-tos
- pyOpenSSLのバージョンでエラーが出た場合、下記のコマンドで新しいモジュールに入れ替える。
# rpm -e --nodeps pyOpenSSL # pip install pyOpenSSL
- pyOpenSSLのバージョンでエラーが出た場合、下記のコマンドで新しいモジュールに入れ替える。
- ライセンス同意、サポート情報受信可否を行い以下に証明書ファイルが作成されます。
/etc/letsencrypt/live/www.example.com README cert.pem chain.pem fullchain.pem privkey.pem
- 停止しておいたサービスを再開させます
# systemctl start httpd
自動更新¶
*自動更新スクリプトの取得と配置curl https://dl.eff.org/certbot-auto -o /usr/bin/certbot-auto chmod 700 /usr/bin/certbot-auto
- HTTPサービスの一時停止は必須です。
- 更新用に以下のスクリプトを作成します。
# vi /etc/letsencrypt/update.sh ----------------------------- #!/bin/bash /sbin/service httpd stop certbot-auto certonly -a standalone -d www.example.com --renew-by-default /sbin/service httpd start exit
- crontabに以下の内容を登録します。一時的にpython27を通して実行します。
- 例として毎月1日の25時にWebサーバ向けのSSL証明書の更新を行う設定です。
0 1 1 * * sh /etc/letsencrypt/update.sh
ファイルと設定箇所の例¶
- Apache
/etc/httpd/conf.d/ssl.conf SSLCertificateFile /etc/letsencrypt/live/www.example.com-0001/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/www.example.com-0001/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/www.example.com-0001/chain.pem SSLCACertificateFile /etc/letsencrypt/live/www.example.com-0001/fullchain.pem バーチャルホストにSSLを設定している場合は、別途設定すること。
¶
¶