yoshiislandblog.net
元営業の駆け出しアラサーSEが、休日にMACと戯れた際の殴り書きメモ。日々勉強。日々進歩。

この記事は3年以上前に書かれた記事で内容が古い可能性があります

WordPress(aws_bitnami)のssl対応

2018-03-21

※20200927更新
こちらの新しい記事も参照ください
WordPressのSSL化


結構奮闘したのでメモ

Really Simple SSLをインストール

まずは、httpsでアクセスできるようにする

Really Symple SSLを使用した
https://really-simple-ssl.com/

これでhttpsアクセスできるようになるが、
mixed content warningが出てしまうのと、
Untrust Pageとして赤い鍵マークが表示されてしまうので、それぞれ対処する

mixed content warning

この辺りの公式ページに対処法が載っているが、自分は画像リンクとページリンクがhttpのままであったことが原因だった
https://really-simple-ssl.com/knowledge-base/how-to-track-down-mixed-content-or-insecure-content/

以下のツールも使いつつ、地道に修正する。地道
https://ja.wordpress.org/plugins/ssl-insecure-content-fixer/
https://ja.wordpress.org/plugins/search-and-replace/

Certificateを適用

無料で使えるLet’s Encryptを使用する

# sudo apt-get install libcurl4-gnutls-dev libexpat1-dev gettext
# sudo apt-get install git
# git clone https://github.com/letsencrypt/letsencrypt
# cd letsencrypt

古い証明書が残っていたら、消しておく

# mv /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt.backup
# sudo update-ca-certificates

発行

# ./letsencrypt-auto certonly -a standalone -d www.yoshiislandblog.net
...
Problem binding to port 80: Could not bind to IPv4 or IPv6.

エラーが出てしまうので、一度apacheをstopする
bitnamiなので以下のコマンドでstopする

# sudo /opt/bitnami/ctlscript.sh stop apache

再トライ

# ./letsencrypt-auto certonly -a standalone -d www.yoshiislandblog.net
...
IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
 	...
   Your cert will expire on 2018-06-19. To obtain a new or tweaked
   version of this certificate in the future, simply run
   letsencrypt-auto again. To non-interactively renew *all* of your
   certificates, run "letsencrypt-auto renew"
   ...

Congratulationsと出てくるのでうまくいったと確認できる
Certificateには期限があるので確認しておく

諸々ファイルを修正していく

/opt/bitnami/apache2/conf/httpd.confはコメントを外す

# diff /opt/bitnami/apache2/conf/httpd.conf /opt/bitnami/apache2/conf/httpd.conf.20180321
500c500
< Include conf/extra/httpd-ssl.conf --- > #Include conf/extra/httpd-ssl.conf

/opt/bitnami/apache2/conf/extra/httpd-ssl.confはパスを自分の環境に合わせて変更する

# diff /opt/bitnami/apache2/conf/extra/httpd-ssl.conf /opt/bitnami/apache2/conf/extra/httpd-ssl.conf.20180321
144,145c144
< SSLCertificateFile "/etc/letsencrypt/live/www.yoshiislandblog.net/cert.pem"
< #SSLCertificateFile "/opt/bitnami/apache2/conf/server.crt" --- > SSLCertificateFile "/opt/bitnami/apache2/conf/server.crt"
155,156c154
< SSLCertificateKeyFile "/etc/letsencrypt/live/www.yoshiislandblog.net/privkey.pem"
< #SSLCertificateKeyFile "/opt/bitnami/apache2/conf/server.key" --- > SSLCertificateKeyFile "/opt/bitnami/apache2/conf/server.key"
167d164
< SSLCertificateChainFile "/etc/letsencrypt/live/www.yoshiislandblog.net/chain.pem"

apache起動、、できない

# sudo /opt/bitnami/ctlscript.sh restart apache
Unmonitored apache
AH00526: Syntax error on line 35 of /opt/bitnami/apache2/conf/bitnami/bitnami.conf:
Cannot define multiple Listeners on the same IP:port
apache config test fails, aborting
AH00526: Syntax error on line 35 of /opt/bitnami/apache2/conf/bitnami/bitnami.conf:
Cannot define multiple Listeners on the same IP:port
apache config test fails, aborting
Monitored apache

/opt/bitnami/apache2/conf/bitnami/bitnami.confの、「# Default SSL Virtual Host configuration.」以下をコメントアウトする必要があるとのこと
https://www.moor-triangle.com/2017/02/01/%E3%80%90aws%E3%80%91bitnami-wordpress%E3%82%92lets-encrypt%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E7%84%A1%E6%96%99%E3%81%A7ssl%E5%8C%96/

# sudo /opt/bitnami/ctlscript.sh restart apache
Unmonitored apache
Syntax OK
/opt/bitnami/apache2/scripts/ctl.sh : httpd stopped
Syntax OK
/opt/bitnami/apache2/scripts/ctl.sh : httpd started at port 80
Monitored apache

今度は成功したが、サイトにアクセスできなくなってしまったので/opt/bitnami/apache2/conf/extra/httpd-ssl.confを以下の通り修正

# diff /opt/bitnami/apache2/conf/extra/httpd-ssl.conf /opt/bitnami/apache2/conf/extra/httpd-ssl.conf.20180321
293,295c293
< Include "/opt/bitnami/apache2/conf/bitnami/bitnami-apps-prefix.conf"
< </VirtualHost>
< Include "/opt/bitnami/apache2/conf/bitnami/bitnami-apps-vhosts.conf" --- > </VirtualHost>
# sudo /opt/bitnami/ctlscript.sh restart apache
Unmonitored apache
Syntax OK
/opt/bitnami/apache2/scripts/ctl.sh : httpd stopped
Syntax OK
/opt/bitnami/apache2/scripts/ctl.sh : httpd started at port 80
Monitored apache

 

ひとまず完成

参考:Letsencryptを更新しようとしたら例の「Problem binding to port 80」が出現する