実現したいこと
HTTPS化の過程でSSL証明書と秘密鍵の発行を行うためにcertbot
コマンドを実行しようとしています。
前提
環境はAWSのEC2を利用していて、下記の通りです
OS:Amazon Linux2
WEBサーバー:Nginx
APサーバー:Gunicorn
WEBアプリ本体:Django(Python)
またAWSのEC2インスタンスのセキュリティグループは下記の通りになっており、HTTP、HTTPSどちらもポート番号を解放しています。
試した手順
EC2インスタンスにssh接続を行い、EPELリポジトリを有効化し、yum
コマンドでcertbot
のインストールを行いました。続いて、certbotの実行で使われるpython-virtualenv
パッケージをインストールしました。
$ amazon-linux-extras install -y epel $ yum install certbot $ yum -y install python-virtualenv
次にNginx設定ファイル(/etc/nginx/nginx.conf)の編集を行い、locationディレクティブを追加したのち、$ sudo systemvtl reload nginx.service
コマンドを実行しNginxをリロードしました。この際、listen 80;
とし、HTTP通信でリクエストを待機する設定をしています。
http { #中略 include /etc/nginx/conf.d/*.conf; server { listen 80; server_name XXX; root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location /static { alias /usr/share/nginx/html/static; } location /media { alias /usr/share/nginx/html/media; } location / { proxy_set_header Host $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://127.0.0.1:8000; } location /.well-known/acme-challemge { root /usr/share/nginx/html; } error_page 404 /404.html; location = /404.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
その後、SSL証明書と秘密鍵の発行を行うためにcertbot
コマンドの実行を行いました。
$ sudo certbot --no-bootstrap certonly --webroot -w /usr/share/nginx/html -d XXX -m XXX --agree-tos
発生している問題・エラーメッセージ
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator webroot, Installer None Requesting a certificate for XXX Performing the following challenges: http-01 challenge for XXX Using the webroot path /usr/share/nginx/html for all unmatched domains. Waiting for verification... Challenge failed for domain XXX http-01 challenge for XXX Cleaning up challenges Some challenges have failed. IMPORTANT NOTES: - The following errors were reported by the server: Domain: XXX Type: unauthorized Detail: XXX: Invalid response from http://XXX/.well-known/acme-challenge/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX: 404 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.
というエラーメッセージが表示されてしまいます。エラーメッセージ通りにEC2インスタンスのパブリックIPアドレスとDNSレコードの対応を見直しても間違いも見当たりませんでした。
原因をいろいろ調べてみると、nginx.conf
のlisten
の値が80
ではない場合に同様のエラーメッセージが表示されるようですが、本件では80で設定をしているにも関わらずエラーが出てしまい、解決方法がわかりませんでした。
補足
・環境変数ALLOWED_HOSTS
に独自ドメインを設定し、更新後にGunicornを再起動しています。
回答1件
あなたの回答
tips
プレビュー