##httpsが繋がらない時の対処法
port443を開けているのに、サーバー上でhttps接続ができずに困ったので、その対応方法をメモ。
出てきたエラーは下記の通り。
このサイトにアクセスできません
xxx.co.jp で接続が拒否されました。
今回はサーバー上にDockerで立ててwordpressを実装しているため、docker-compose.ymlに下記を追記して、SSL証明書は対応済み。
###正しい解決法
#Let's encrypt対応コード
https-portal:
image: steveltn/https-portal:1
depends_on:
- wordpress
links:
- wordpress
ports:
- 80:80
- 443:443
restart: always
volumes:
- ./ssl_certs:/var/lib/https-portal
environment:
DOMAINS: ‘xxxx.co.jp -> http://wordpress:80’
STAGE: production
CLIENT_MAX_BODY_SIZE: 64M
ここでの注意点は、wordpressのところを、その時のnginxやapacheがあるwebサーバーを指定すること。今回はwordpressの中でapache入れているのでこのような表記。
さらに、ymlの上部に書いてあるwordpress(webサーバー)のportはコメントアウトで消す。
###今回のケースにおける対応
本来は上記対応でhttps対応(Lets encrypt)が可能なはずだが、今回はおそらくDNS設定のところがうまく出来ておらずymlの内容が読み込まれないため、対処に苦労した。
・/etc/hosts/
にてルートを自分で決めてしまっていた。
・ クライアントの方で、DNSレコード設定で、使っているネームサーバーが異なっていた
おそらく二つ目が理由になって、DNSとIPが繋がらず、docker-compose.ymlに記載したコードが反映していなかったものと思われる。
なお、DNSとIPはターミナルでnslookup xxx.co.jp(DNS)で紐づいているIPが確認できる。
今回はこれで、ネームサーバーで取得したDNSとIPに切り替わらなかった。