こんにちは。hacknoteのr.katoです。
今回はApache環境で複数のドメインを使ってネームベースバーチャルホスト設定下でLet’s Encryptで発行したSSL証明書を用いるために設定をしたのでその紹介です。
環境
- OS: centOS7
- Apache: 2.4.6
- Openssl: 1.0.2k-fips
- mod_ssl: 1:2.4.6-90.el7.centos
- certbot: 1.0.0
- ドメイン: AAA.com BBB.com
ひとまず、certbotで発行しようとした
ひとまず、 certbot certonly --apache -d AAA.com -d BBB.com
で2つのドメインを指定して、SSL証明書の発行のみを行おうとしました。
centos@ipXXXXXXXX:~$ sudo su - Last Login....... root@ipXXXXXXXX:~# certbot certonly --apache -d AAA.com -d BBB.com ... (一部 略) ... Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator apache, Installer apache Starting new HTTPS connection (1): acme-v02.api.letsencrypt.org Obtaining a new certificate Performing the following challenges: http-01 challenge for AAA.com http-01 challenge for BBB.com Cleaning up challenges Unable to find a virtual host listening on port 80 which is currently needed for Certbot to prove to the CA that you control your domain. Please add a virtual host for port 80.
しかし、このように失敗しました。
よくよく考えたら、この方法では一度、port80を介してサーバーの確認が入るので
Apache側の設定で
一時的に、AAA.comとBBB.comのport80でアクセスできるように設定しリトライ
一時的にconfファイルを書き換えリトライしてみました。
root@ipXXXXXXXX:~# certbot certonly --apache -d AAA.com -d BBB.com Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator apache, Installer apache Starting new HTTPS connection (1): acme-v02.api.letsencrypt.org Obtaining a new certificate Performing the following challenges: http-01 challenge for AAA.com http-01 challenge for BBB.com Waiting for verification... Cleaning up challenges IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/AAA.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/AAA.com/privkey.pem Your cert will expire on 2020-06-07. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
無事、 /etc/letsencrypt/archive/AAA.com/
に4つのファイルが作成され、それらのシンボリックリンクが /etc/letsencrypt/live/AAA.com/
に作成されました。
作成されたファイルは次のようになっています。
ファイル名 | 内容 |
---|---|
privkey.pem | 秘密鍵 |
cert.pem | 証明書 |
chain.pem | 中間証明書 |
fullchain.pem | 証明書と中間証明書を連結したファイル |
最後に
シンボリックリンクをconfファイルに設定することでサイトのSSL化ができます。
ちなみに、
Apache2.4.7以前ではSSLの設定に
- privkey.pem
- cert.pem
- chain.pem
を使い、
Apache2.4.8以降とNginxでは
- privkey.pem
- fullchain.pem
を使うようです。