はじめに
WebをSSL/TLS化しないとGoogle Chromeで表示されなくなるという話があったので、seiribako.netも対応させようとしているのですが、はまっています。これに関する記録をここにしていこうと思います。
SSL/TLS対応とは
私の本職はSEですが、このBlogは技術Blogではありませんので、技術的なことは書きませんが、SST/TLS対応をすると何が起きるのかを簡単にまとめておきます。
サーバー認証
これは、今アクセスする対象のサーバーが、まさに正しい正真正銘のサーバーであることをサーバー及び、アクセスを試みているクライアント以外の第三者が証明することを指します。その結果として、サーバー証明書を取得できます。
これは、例えば名前だけ知っているものの、見たことも会ったこともない人に会う際をイメージするとわかりやすいかもしれません。今自分が会おうとしているXさんは、誰か自分の友人や親しい人の紹介であれば、間違いなくXさんに会えると思える一方で、Onlineなどで知り合った初めて会う人だったとすると、今までオンラインでやりとりをしていた人が必ずしも、その場であったXさんとは限らず、もしかしたら全く別の人かもしれない。そんな感じです。
通信内容の暗号化
これは比較的わかりやすい話かもしれませんが、SSL/TLSに対応しないと、サーバーとクライアントの間の通信は全て人が解読できる文字として交換されるため、誰かが覗き見しようと思うと簡単に出来てしまいます。これを簡単にできなくするために、通信内容の暗号化を行います。
これが必要になる際たるケースは、個人情報のやり取りをしたり、クレジットカードなどの決済情報のやり取りをするケースだと思います。暗号化していないと、個人情報が漏洩したり、クレジットカード情報を盗み取られ、不正に利用されてしまいます。
なので、扱う情報によってはSSL/TLS対応は必須と言えます。
結果何が起こるのか
これらのSSL/TLS対応をするとWebサイトには何が起こるのかというと、細かいことは抜きにして、httpがhttpsに変わり、ブラウザのアドレスバーの横に鍵アイコンが表示されるようになります。その結果、待ち受けポートが80番から443番に変わるなどの話もありますが、ここでは無視します。一般的には興味を持たれるようなたいした話ではないので。
SSL /TLS対応の手順
対応手順は、インターネットの海の中にいくらでもおっこっているのですが、こちらのページを参考に進めています。
この手順の、3.Generate Certificateがうまく行かずに手が止まります。
発生しているエラー
発生しているエラーは、403 Errorで閲覧禁止ということのようですが、Certbotが提示するラーは名前解決ができないからドメイン名とPublic IPアドレスがちゃんと紐づいているかをDNSサーバで確認してくれということのようです。
実際のエラーはこれとは違いますが、概ねこれと同じです。
Domain: "mywebsite.fr"
Type: unauthorized
Detail: Invalid response from
http://"mywebsite.fr"/.well-known/acme-challenge/joTDZKkyDRnMBMTD6YIar91hgpasWRvRG01NmeGcivQ:
"<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p">
これに関して、ここにはDocument rootが違うのが原因だったみたいなことが書いてあるので、この辺を疑ってエラー解消に進もうと思っています。
https://community.letsencrypt.org/t/solved-invalid-response-403-forbidden/64170