構築したwebサーバの管理画面をhttpsにしたかったので、Let's Encryptで証明書を発行しました。
目次
Let's Encryptの導入
epelを入れれば、yumで導入出来ます。楽です。
# yum install epel-release # yum install certbot python-certbot-apache
導入はこれで完了です。
証明書の発行
自分の環境は既にapacheを起動しWebページが参照出来る状態なので、以下コマンドで証明書を発行しました。
# certbot certonly --agree-tos --webroot -w /mnt/nfs/sample.unknownengineer.net/htdocs/ -d sample.unknownengineer.net -m sample@gmail.com
成功すれば以下に証明書が作成されます。
# ls /etc/letsencrypt/live/sample.unknownengineer.net/ README cert.pem chain.pem fullchain.pem privkey.pem
apacheの設定
作成されたファイルをhttpd-ssl.confで指定します。
# vim /usr/local/apache2/conf/extra/httpd-ssl.conf SSLCertificateFile "/etc/letsencrypt/live/sample.unknownengineer.net/cert.pem" SSLCertificateKeyFile "/etc/letsencrypt/live/sample.unknownengineer.net/privkey.pem" SSLCertificateChainFile "/etc/letsencrypt/live/sample.unknownengineer.net/chain.pem"
apacheのrestart前にhttpd -tコマンドでエラーがないかを確認します。
# /usr/local/apache2/bin/httpd -t AH00526: Syntax error on line 52 of /usr/local/apache-2.4.29/conf/extra/httpd-ssl.conf: Invalid command 'SSLCipherSuite', perhaps misspelled or defined by a module not included in the server configuration
必要なモジュールが有効になっていません。mod_sslを有効にします。
# vim /usr/local/apache2/conf/httpd.conf LoadModule ssl_module modules/mod_ssl.so ←コメントアウト解除 [root@web1 ~]# /usr/local/apache2/bin/httpd -t AH00526: Syntax error on line 92 of /usr/local/apache-2.4.29/conf/extra/httpd-ssl.conf: SSLSessionCache: 'shmcb' session cache not supported (known names: ). Maybe you need to load the appropriate socache module (mod_socache_shmcb?).
別のエラーが出ましたが、こちらも必要なモジュールを有効にしてあげます。
# vim /usr/local/apache2/conf/httpd.conf LoadModule socache_shmcb_module modules/mod_socache_shmcb.so ←コメントアウト解除 # /usr/local/apache2/bin/httpd -t Syntax OK
エラーが消えてから、apacheをrestartすれば適用されていると思います。