質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

4回答

794閲覧

AWSで無料証明書を用いてSSL化したい

jyamamoto

総合スコア7

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

2グッド

7クリップ

投稿2019/12/03 11:22

編集2019/12/04 04:06

前提・実現したいこと

タイトルと内容が若干ずれるかもしれないのですが・・
AWSで無料証明書を用いてSSL化していましたが、IPを変更したら更新ができなくなってしまいました。
ここに質問できるほどのサーバへの理解も無く、初心すぎる質問となることを先にお許しください。

当方、AWSでWordPressを用いてホームページを掲載しています。
利用している環境
:AWS(OS:AmazonLinux)
:Route53
:apache(2.2.34)
:PHP 7.0.32 (cli)
:WordPress

この状態でSSL化を目指し、letsencryptにたどり着きました。
何をどうやったのか最早覚えていないのですが、google検索での皆様の事例を様々実行した結果
当時はインストールと証明書の獲得に無事成功しました。

その後半年ほど経てErasticIPを導入する(最初は重要性が分かっておらず導入しておりませんでした)こととなり
これも導入は成功しました。

そして毎回手動で実施していた証明書の更新が今回失敗し、ついに11月末にhttpsでのURL到達で
証明書エラーが出るようになってしまいました。

更新できなくなったのであれば、再度認証させればいいのでは・・と考え、
下記コマンドを実施しましたがエラーとなりました。

発生している問題・エラーメッセージ

【コマンド】 # certbot-auto certonly --webroot -w /var/www/html -d "example.com" --email "メールアドレス" --no-self-upgrade 【結果】 Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator webroot, Installer None Cert is due for renewal, auto-renewing... Renewing an existing certificate Performing the following challenges: http-01 challenge for "example.com" Using the webroot path /var/www/html for all unmatched domains. Waiting for verification... Challenge failed for domain "example.com" http-01 challenge for "example.com" Cleaning up challenges Some challenges have failed. IMPORTANT NOTES: - The following errors were reported by the server: Domain: "example.com" Type: unauthorized Detail: Invalid response from http://"example.com"/.well-known/acme-challenge/fp6IL0tgW_81t0yUDJOy3kw4LmaUSNyCPcxg_O877UA [**.***.**.***](後から設定したErasticIP): "<!DOCTYPE html>\n<html lang=\"ja\" class=\"no-js\">\n<head>\n\t<meta charset=\"UTF-8\">\n\t<meta http-equiv=\"X-UA-Compatible\" content=\"IE=ed" To fix these errors, please make sure that your domain name was entered correctly and the DNS A/AAAA record(s) for that domain contain(s) the right IP address.

確認してみたこと

・Route53での名前解決(紐付け)は問題ない模様 ・SSL無しURLでサイトは表示される。 ・httpd.conf内のドキュメントルートと/var/www/htmlは一致している

もともと出来ていた(出来てしまっていた)ものに対して
どのようにすればよいか、質問するにしてもどのようなログを提供させていただくのが良いか
それすら良く分からない知識量で重ねて申し訳ありません。

一度削除をするとか、失効させる?とか恐らく方法は1通りではないのだと思いますが、
最終的には元のドメインをSSL化して表示させたい・・というのが達成したいこととなります。

なにとぞお力をお貸しいただけますよう、お願い致します。

AnMoreNight👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

ベストアンサー

以下を確認してみてはいかがでしょうか。
・Route53でのDNSでのAレコードの紐づけは正しいですか? OK
・外部から80番/443番ポートでのアクセス設定になっていますか? OK
・Apacheのアクセスログには何か出ていませんか? OK(アクセスが来ている)

追記
・ドメイン名がログに含まれているので注意してください。
・下記のパスにアクセス出来ないのが原因です。Apacheまではアクセスが来ているので、
ルートディレクトリ配下の.htacessやBasic認証などでアクセス制限していませんか?
(同様のディレクトリおよびファイルを配置して自分自身ではアクセスできますか?)
/.well-known/acme-challenge/UPRhJvy5NatjyFxmPj40eu1VxGjLlUksh9AiRJBrswY

投稿2019/12/04 03:37

編集2019/12/04 06:40
yodel

総合スコア508

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jyamamoto

2019/12/04 08:06 編集

ご回答ありがとうございます! 現在3点について確認してみました。 ①Route53でのDNS~Aレコードの紐付けについて 確認: コンソール画面での確認と、実際に「http://"example.com"(SSLではないアクセス)」に成功しました。 その際、証明書エラーですが続行しますか?のような画面が1度表示され、続行することでアクセスできる状態です。このような確認から、設定できていると考えています。 ②外部から80番/443番ポートでのアクセス設定について 確認: セキュリティグループの設定にて、開放を確認しました。また①と重複しますが、現在URLアクセスできることと以前まで証明書が利用できていた(httpsのURL)ことから、設定できていると考えています。 ③Apacheのアクセスログについて 確認: とりあえず以下のエラーログが出力されておりました。 # cat /var/log/httpd/error_log [Sun Dec 01 03:35:02 2019] [notice] Digest: generating secret for digest authentication ... [Sun Dec 01 03:35:02 2019] [notice] Digest: done [Sun Dec 01 03:35:02 2019] [notice] Apache/2.2.34 (Unix) DAV/2 mod_ssl/2.2.34 OpenSSL/1.0.2k-fips configured -- resuming normal operations # cat /var/log/httpd/ssl_error_log [Sun Dec 01 03:35:02 2019] [warn] RSA server certificate CommonName (CN) `"example.com"' does NOT match server name!? これとは別に・・ certbot-autoのコマンドを実行すると下記が出力されました。 # cat /var/log/httpd/access_log (↓該当のみ貼り付けました) 34.209.232.166 - - [04/Dec/2019:04:57:21 +0000] "GET /.well-known/acme-challenge/UPRhJvy5NatjyFxmPj40eu1VxGjLlUksh9AiRJBrswY HTTP/1.1" 404 38343 "-" "Mozilla/5.0 (compatible; Let's Encrypt validation server; +https://www.letsencrypt.org)" 64.78.149.164 - - [04/Dec/2019:04:57:21 +0000] "GET /.well-known/acme-challenge/UPRhJvy5NatjyFxmPj40eu1VxGjLlUksh9AiRJBrswY HTTP/1.1" 404 38343 "-" "Mozilla/5.0 (compatible; Let's Encrypt validation server; +https://www.letsencrypt.org)" 52.15.254.228 - - [04/Dec/2019:04:57:21 +0000] "GET /.well-known/acme-challenge/UPRhJvy5NatjyFxmPj40eu1VxGjLlUksh9AiRJBrswY HTTP/1.1" 404 38343 "-" "Mozilla/5.0 (compatible; Let's Encrypt validation server; +https://www.letsencrypt.org)" 52.28.236.88 - - [04/Dec/2019:04:57:21 +0000] "GET /.well-known/acme-challenge/UPRhJvy5NatjyFxmPj40eu1VxGjLlUksh9AiRJBrswY HTTP/1.1" 404 38343 "-" "Mozilla/5.0 (compatible; Let's Encrypt validation server; +https://www.letsencrypt.org)" となりましたが、エラーログファイルには出力は増えませんでした。
jyamamoto

2019/12/04 10:09

ご回答ありがとうございます! 何とかうまくいきました。 ひとつひとつ教えていただき、本当にありがとうございます。 ご指摘のとおり、cert-botが設置したファイルへアクセスできないことが原因でした。 理由(おそらく): WordPressをインストールした際に設置した、/wordpress/を抹消するための.htaccessのリダイレクトが利いていたせいで cert-botが設置した認証用ファイル(URL)にアクセスできず、認証が通らなかったようです。 気づけた理由: ご指摘を受けて、ルートディレクトリに設置したphpinfo.phpへアクセスしてみたところ アクセスできなかった。 解決策: .htaccessを無効化した後、下記コマンドを実施したところ 出力ログに変化が見られました。 (最後の--no-self-upgradeを外しても成功するか、怖くて試せませんでした) 途中の選択肢は「現在のものを更新するか、置き換えて新しくするか」という内容に見えたので 「2」を選択しました。 # certbot-auto certonly --webroot -w /var/www/html -d "example.com" --email "メールアドレス" --no-self-upgrade Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator webroot, Installer None Cert not yet due for renewal You have an existing certificate that has exactly the same domains or certificate name you requested and isn't close to expiry. (ref: /etc/letsencrypt/renewal/"example.com".conf) What would you like to do? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: Keep the existing certificate for now 2: Renew & replace the cert (limit ~5 per 7 days) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2 Renewing an existing certificate IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/"example.com"/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/"example.com"/privkey.pem Your cert will expire on 2020-03-03. To obtain a new or tweaked version of this certificate in the future, simply run certbot-auto again. To non-interactively renew *all* of your certificates, run "certbot-auto 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 この後httpdを再起動することで、無事SSL化することができました。 本当にありがとうございました!
yodel

2019/12/06 02:25

無事更新出来て良かったです。 対応内容や原因についても詳細に記載して頂いて、とても参考になりました。 certbotでの証明書は期間が短く、定期的にrenewして更新が必要となると思うので、 今後同じような事象にならないように気を付けてください。
jyamamoto

2019/12/09 06:58

引き続きのご指摘、ありがとうございます! 参考サイト様を拝見して、cronでの自動更新を実施してみていたのですが 毎度自動では更新されず手動での更新となっている現状です。 更に拝見していたところ、実行ファイルの権限に問題があるかもしれず・・ chmod 600とした上で現在更新日時待ちとなっております。
guest

0

もしかしてここに書いてあることと同じ現象ではないでしょうか

.well-known/acme-challenge/ にきちんとアクセスできていないのではないでしょうか。
certbotの詳細な動作はわからないですが、SSL化したことによって挙動に影響が出たのかもしれません。

回避策として、上記サイトや参考サイトでは.well-known/acme-challenge/に対するアクセスだけ80番ポートで行わせるような設定を入れています。

ただ、せっかくAWSでRoute53も使っていて、かつ将来的にトラフィックの増加が見込まれるなら、ALBを使ってACMの証明書でSSL化してもいいのでは、とも思います。

投稿2019/12/04 03:43

yu_1985

総合スコア7440

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jyamamoto

2019/12/04 10:26

ご回答ありがとうございます! 本件、ご指摘のとおり.well-known/acme-challenge/へアクセスできなかったことが原因のようです。 サイト様も参考にさせていただき設定してみようと試みましたが、知識不足により断念してしまいました。 今思うと、リダイレクトがかかったままでも該当URLだけ指定してアクセスさせることが出来るのかもしれない・・と思っていますが試していません。 ELBとACMを利用するという話につきましても、ご指導ご提案ありがとうございます。 もともとは料金をケチった結果見送りとなっていたのですが、知識と理解不足からこのような事態となってしまいました。今回の件を踏まえ社内で推して参ります。
guest

0

さすがに名前解決はしてますよね?

投稿2019/12/10 01:39

mofumofupafu

総合スコア9

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jyamamoto

2019/12/11 03:25

ご回答ありがとうございます! 名前解決については 当時http://"example.com"での接続に成功したこと AWS Route53コンソール画面にて紐付けしていることをもって 完了している、という判断をしました!
guest

0

"example".com
なんでドメインの中に"があるんでしょうか?
"example.com"example.comで良いのでは?

投稿2019/12/03 12:13

Y.H.

総合スコア7914

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jyamamoto

2019/12/04 01:32

ご回答ありがとうございます! 表記が分かりづらく申し訳ありません。 "example".com と記載表記していますが、実際の設定は"example.com"となっております。
Y.H.

2019/12/04 02:49

質問を編集し修正ください。 回答する方は質問に記載されていることのみから質問者さんの問題の解決に向け手助けをしています。 それが信用できない場合は回答のしようがありません。(というか無駄な時間を浪費してしまいます)
jyamamoto

2019/12/04 04:10

分かりづらいことで申し訳ありません。 上記修正致しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問