Certbot のインストール†[edit]
- Python 仮想環境を作成
[root@host opt]# python3 -m venv /opt/certbot/
- pip をアップデート
[root@host certbot]# /opt/certbot/bin/pip install --upgrade pip
- Certbot をインストール
[root@host certbot]# /opt/certbot/bin/pip install certbot
- パスの通ったディレクトリにシンボリックリンクを作成
[root@host certbot]# ln -s /opt/certbot/bin/certbot /usr/bin/certbot
- Certbot が動くことを確認
[root@host certbot]# certbot --version
certbot 2.6.0
サーバ証明書の作成†[edit]
- 認証アクセス用のディレクトリを作成
[root@host ~]# mkdir -p /var/www/certbot/www.yamikuro.com
- Apache に認証アクセスの用の設定を入れる
[root@host ~]# vi /etc/httpd/conf.d/yamikuro.conf
# Let's Encrypt
Alias /.well-known /var/www/certbot/www.yamikuro.com/.well-known
<Directory /var/www/certbot/www.yamikuro.com>
Require all granted
</Directory>
- Apache を再起動
[root@host ~]# apachectl configtest
[root@host ~]# systemctl reload httpd
- サーバ証明書を作成
[root@host ~]# /usr/bin/certbot certonly \
--webroot \
-w /var/www/certbot/www.yamikuro.com \
-d www.yamikuro.com \
--preferred-challenges http \
--agree-tos \
--register-unsafely-without-email
- 証明書が作成されたことを確認
[root@host ~]# ls -l /etc/letsencrypt/live/www.yamikuro.com/
total 4
lrwxrwxrwx 1 root root 40 Jun 15 18:13 cert.pem -> ../../archive/www.yamikuro.com/cert1.pem
lrwxrwxrwx 1 root root 41 Jun 15 18:13 chain.pem -> ../../archive/www.yamikuro.com/chain1.pem
lrwxrwxrwx 1 root root 45 Jun 15 18:13 fullchain.pem -> ../../archive/www.yamikuro.com/fullchain1.pem
lrwxrwxrwx 1 root root 43 Jun 15 18:13 privkey.pem -> ../../archive/www.yamikuro.com/privkey1.pem
-rw-r--r-- 1 root root 692 Jun 15 18:13 README
サーバ証明書の設定†[edit]
- サーバ
[root@host ~]# vi /etc/httpd/conf.d/ssl.conf
ServerName www.yamikuro.com
SSLCertificateFile /etc/letsencrypt/live/www.yamikuro.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.yamikuro.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/www.yamikuro.com/chain.pem
- Apache を再起動
[root@host ~]# apachectl configtest
[root@host ~]# systemctl reload httpd
サーバ証明書の自動更新†[edit]
[root@host ~]# echo "0 0,12 * * * root /opt/certbot/bin/python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew -q" | sudo tee -a /etc/crontab > /dev/null