AWSを無料のSSLでなんとかしたい
初版 2020/01/25
(注)下記の情報は、適度に乱数化していますので、アタックは時間の無駄です
謝辞: 私のために、わざわざ手順書を作成してくれたSさんに感謝します。
1.SSL証明書とは何か
■知らん
しかし、AWS(Amazon Web Service)で、位置情報を取り扱うWebサイトを作るとき、この処理ができないと位置情報のやりとりができない(ブラウザの全部が、サービスを拒否する)ので、とにかく実装しなけれなならなくなった
■もう少し真面目に言うと
■何が美味しいのか
例えば、江端の運営している"kobore.net"が世界で唯一のホームページであることを、江端よりえらい人(機関、組織)に承認してもらうことで、"kobore.net"とあなたのPCやスマホのブラウザで暗号化通信がされることになる
つまり、"kobore.net"とあなたのPCやスマホの間での通信を、盗聴しようとしても、訳の分からん文字(情報)しか見えなくなる
この対応していないとどうなるか→ブラウザに「このサイト、信用できんぜ」と表示される
■で、分かると思うけど
2.やりたいこと
3. やってしまったこと
4.まず、AWSのSSL証明書を無効化する
(1)AWSのコンソールから、Certificate Managerにいって外そうとしたが、「証明書は *.sea-anemone.tech (a961fd79-546d-4915-bc6b-784decc76f3c)使用中で(他の AWS リソースに関連付けられていて)削除することはできません。リスト内の各リソースからその証明書との関連付けを解除し、もう一度お試しください。」と言われて失敗
(2)今度はELBの方にいってみる→リスナーのところにあるhttpsのリストを消去→この後、Certificate Managerにいって外したら成功した
(3)ところが、Webサービスが全滅してしまった
(4)ELBの方にいってみる→リスナーのところにあるhttpsのリストをhttp(80)を追加することで、復活した
5.では始める
Obtaining a new certificate Performing the following challenges: http-01 challenge for sea-anemone.tech http-01 challenge for www.sea-anemone.tech Using the webroot path /var/www/html for all unmatched domains. Waiting for verification... Cleaning up challenges Failed authorization procedure. sea-anemone.tech (http-01): urn:ietf:params:acme:error:dns :: No valid IP addresses found for sea-anemone.tech, www.sea-anemone.tech (http-01): urn:ietf:params:acme:error:connection :: The server could not connect to the client to verify the domain :: Fetching http://www.sea-anemone.tech/.well-known/acme-challenge/XKDZnnDIn-Y7BZYkx4Q6dPbUVeaSDrKAMgEW6Y2iLHU: Connection refused
IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/www.sea-anemone.tech/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/www.sea-anemone.tech/privkey.pem Your cert will expire on 2020-04-24. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
例えば、$sudo ls -l /etc/letsencrypt/live/www.sea-anemone.tech
-rw-r--r-- 1 root root 692 Jan 25 13:48 README lrwxrwxrwx 1 root root 42 Jan 25 13:53 cert.pem -> ../../archive/www.sea-anemone.tech/cert2.pem lrwxrwxrwx 1 root root 43 Jan 25 13:53 chain.pem -> ../../archive/www.sea-anemone.tech/chain2.pem lrwxrwxrwx 1 root root 47 Jan 25 13:53 fullchain.pem -> ../../archive/www.sea-anemone.tech/fullchain2.pem lrwxrwxrwx 1 root root 45 Jan 25 13:53 privkey.pem -> ../../archive/www.sea-anemone.tech/privkey2.pem
認証局に問い合わせをするのは、Webにアクセスあった時だから、認証局に上げるのは"変"
たぶん、EC2に証明書を閉じ込めておいても意味ないので、これをAWSの制御機能に渡す必要があるはず
sudo aws iam upload-server-certificate --server-certificate-name sea-anemone-certificate-20200125 --certificate-body file:///etc/letsencrypt/live/www.sea-anemone.tech/cert.pem --private-key file:///etc/letsencrypt/live/www.sea-anemone.tech/privkey.pem
$ sudo aws iam upload-server-certificate --server-certificate-name sea-anemone-certificate-20200125 --certificate-body file:///etc/letsencrypt/live/www.sea-anemone.tech/cert.pem --private-key file:///etc/letsencrypt/live/www.sea-anemone.tech/privkey.pem --certificate-chain file:///etc/letsencrypt/live/www.sea-anemone.tech/chain.pem --path /www.sea-anemone.tech/
SERVERCERTIFICATEMETADATA arn:aws:iam::924297495837:server-certificate/www.sea-anemone.tech/sea-anemone-certificate-20200125 2020-04-24T03:53:05Z /www.sea-anemone.tech/ ASCA5ONDMQUO2ZNB6MV7H sea-anemone-certificate-20200125 2020-01-25T07:25:10Z
6.確認方法
以上