Let's Encrypt 証明書発行¶
- Let's EncryptでのSSL証明書発行に関するページです。
前提条件¶
- このソフトウェアの構築には下記の導入が前提となります。
- epelリポジトリの登録
- 証明書の有効期限は3ヶ月です。よってcronでの自動更新を含めた解説を行います。
ダウンロード¶
- バイナリファイルをダウンロードし、任意の場所に配置します。
# mkdir /usr/local/letsencrypt # cd /usr/local/letsencrypt # wget https://dl.eff.org/certbot-auto # chmod a+x certbot-auto
- 前提条件となるpython2.7系をインストールします。
# yum install centos-release-SCL # yum install scl-utils python27 python27-scldevel # scl enable python27 bash
- pythonが2.7系に切り替わったことを確認します。
# python -V # Python 2.7.8
インストール¶
- 実行ファイルを起動します。
- 本コマンドを実行する際、一時的にApache等のHTTP/HTTPSサービスを停止しておく必要があります。
# cd /usr/local/letsencrypt # service httpd stop # ./certbot-auto # service httpd start
証明書の作成¶
- 次のコマンドを実行します。
- 本コマンドを実行する際、一時的にApache等のHTTP/HTTPSサービスを停止しておく必要があります。
# cd /usr/local/letsencrypt # service httpd stop # ./certbot-auto certonly -a standalone -d www.example.com (ドメイン名は実際に利用する名称に置き換えること) # service httpd start
- メールアドレスの入力、利用許諾、内容の確認を実施します。
- メールアドレスに通知メールが送られます。
- 以下に証明書ファイルが作成されます。
/etc/letsencrypt/live/www.example.com README cert.pem chain.pem fullchain.pem privkey.pem
自動更新¶
- HTTPサービスの一時停止は必須で、メールサーバの場合postfixとdovecotのリロードも行う記載が必要です。
- 更新用に以下のスクリプトを作成します。
# vi /usr/local/letsencrypt/update.sh # chmod a+x /usr/local/letsencrypt/update.sh
- update.sh 記載内容
#!/bin/bash /sbin/service httpd stop /usr/local/work/letsencrypt/certbot-auto certonly -a standalone -d www.example.com --renew-by-default /sbin/service httpd start /sbin/service postfix restart /sbin/service dovecot restart exit
- crontabに以下の内容を登録します。一時的にpython27を通して実行します。
- 例として毎月1日の25時にWebサーバ向けのSSL証明書の更新を行う設定です。
# Webサーバのみ 0 1 1 * * scl enable python27 /usr/local/letsencrypt/update.sh
ファイルと設定箇所の例¶
- Apache
/etc/httpd/conf.d/ssl.conf SSLCertificateFile /etc/letsencrypt/live/www.example.com/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/www.example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/www.example.com/chain.pem SSLCACertificateFile /etc/letsencrypt/live/www.example.com/fullchain.pem バーチャルホストにSSLを設定している場合は、別途設定すること。
- Postfix
/etc/postfix/main.cf smtpd_tls_cert_file = /etc/letsencrypt/live/www.example.com/fullchain.pem smtpd_tls_key_file = /etc/letsencrypt/live/www.example.com/privkey.pem
- Dovecot
/etc/dovecot/conf.d/10-ssl.conf ssl_cert = </etc/letsencrypt/live/www.example.com/fullchain.pem ssl_key = </etc/letsencrypt/live/www.example.com/privkey.pem
¶
¶