前回、apacheでSSLの設定をして、httpsによる通信を行うことができた。wordpressの高速化の際、apacheではなくnginxに切り替えた際にhttpsの通信ができなくなってしまった。今回はその解決方法について書く。 まず最初に以下のコマンドでssl.confを移動させておく。
sudo mv /etc/httpd/conf.d/ssl.conf /etc/nginx/conf.d/
nginxの設定のため以下のファイルを編集する。
sudo vim /etc/nginx/nginx.conf
設定のファイルのため、管理者権限で行う。
httpとhttpsではポートが違い、httpが80でhttpsが443である。そのため新しくserver{}の項目を増やす必要がある。 以下を追記する。
server { listen 443; ssl on; ssl_certificate "チェインファイルのパス"; ssl_certificate_key "キーファイルのパス"; }
しかしこのままではWordPressの画面は表示されず、nginxの画面が表示される。 そのためこのserver{}の中にもhttpの方とおなじ設定を記載する必要がある。
#sample server { listen 443; ssl on; ssl_certificate "チェインファイルのパス"; ssl_certificate_key "キーファイルのパス"; server_name "domain"; root /var/www/html; index index.php index.html index.htm; location / { } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name; include fastcgi_params; } }
以上でhttpsとhttpsで同じ画面をみることができるようになった。