前提・実現したいこと
・前提
http://xxxxxxxxx.comの状態でのアクセスはできていました。
無料でSSL化できるLet's Encryptを使用しております。
ポートフォリオはrailsで作成しております。
・実現したいこと
自身で作成したポートフォリオをSSL化(https://xxxxxxxxxx.com)の状態で
アクセスできるようにしたい
発生している問題・エラーメッセージ
https://xxxxxxxxx.comとURLをブラウザに打ち込むとロード状態でくるくると読み込み中になり、
ページが表示されずURL横にはこのサイトへの接続は保護されていませんと出ている。
PCはmacbookproを使用しており、サーバーはnginxを使っております。
該当のソースコード
下記qiitaの記事を参考に進めていきました。
https://qiita.com/MuuKojima/items/f2b80a77c13900b293e4
#移動
cd /usr/local/
#リポジトリをクローン
sudo git clone https://github.com/certbot/certbot
#実行
sudo ./letsencrypt-auto --debug
How would you like to authenticate and install certificates?
1: Apache Web Server plugin (apache)
2: Nginx Web Server plugin (nginx)
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):
と聞かれたので2を選択。
Which names would you like to activate HTTPS for?
1: (自身のドメイン名).com
と聞かれたので1を選択
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/melhealhabit.com.conf)
What would you like to do?
1: Attempt to reinstall this existing certificate
2: Renew & replace the cert (limit ~5 per 7 days)
と聞かれた(おそらく確認のために2回目の実行をしようとした)ので、2を選択。
Renewing an existing certificate
Deploying Certificate to VirtualHost /etc/nginx/conf.d/melhealhabit.confと表示される。
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
と聞かれたので1を選択。
Future versions of Certbot will automatically configure the webserver so that all requests redirect to secure HTTPS access. You can control this behavior and disable this warning with the --redirect and --no-redirect flags.
Your existing certificate has been successfully renewed, and the new certificate
has been installed.
The new certificate covers the following domains: https://melhealhabit.com
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=melhealhabit.com
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/melhealhabit.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/melhealhabit.com/privkey.pem
Your cert will expire on 2020-01-17. To obtain a new or tweaked
version of this certificate in the future, simply run
letsencrypt-auto again with the "certonly" option. To
non-interactively renew all of your certificates, run
"letsencrypt-auto renew" - If you like Certbot, please consider supporting our work by:
と表示されて、正常に証明書がインストールできたと思い、テストをするべきと記載されていたので、
サーバーテストをしてみるとAssessment failed: Unable to connect to the serverという
メッセージが表示されてサーバーに接続できません。
試したこと
上記の時点で接続できなくっていたとは思うのですが、一度qiitaの記事通りに通して実行していきました。
#実行
$sudo ./certbot-auto -debug
How would you like to authenticate and install certificates?
1: Apache Web Server plugin (apache)
2: Nginx Web Server plugin (nginx)
と聞かれたので、2を選択。
Obtaining a new certificate
An unexpected error occurred:
The server will not issue certificates for the identifier :: Error creating new order :: Cannot issue for "ebug": DNS name does not have enough labels
Please see the logfiles in /var/log/letsencrypt for more details.
このようなエラーが表示されました。
そのままqiitaの記事に沿って進めました。
#nginxを停止。
&sudo service nginx stop
#SSL証明書を発行。
$sudo ./certbot-auto certonly
How would you like to authenticate with the ACME CA?
1: Apache Web Server plugin (apache)
2: Nginx Web Server plugin (nginx)
3: Spin up a temporary webserver (standalone)
4: Place files in webroot directory (webroot)
と聞かれたので、2を選択。
Plugins selected: Authenticator nginx, Installer None
Please enter in your domain name(s) (comma and/or space separated) (Enter 'c'
to cancel): melhealhabit.com
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/melhealhabit.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)
と聞かれたので、1を選択しました。
Certificate not yet due for renewal; no action taken.
と表示されました。
#nginx再起動
sudo service nginx restart
nginxの設定も一度編集し、SSLを読み込むようにしたのですが、
正常にサイトにアクセスできない問題が解決しないために、
編集前の状態に戻しています。
#Nginxの状態追記
upstream puma {
server unix:///home/ec2-user/first_portfolio/tmp/sockets/puma.sock;
}
server {
server_name melhealhabit.com;
root /home/ec2-user/first_portfolio/public;
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
location / {
proxy_pass http://puma; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_redirect off; proxy_connect_timeout 30; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /home/ec2-user/first_portfolio/public; }
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/melhealhabit.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/melhealhabit.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = melhealhabit.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
server_name melhealhabit.com;
return 404; # managed by Certbot
}
補足情報(FW/ツールのバージョンなど)
IPアドレスを直接ブラウザに打ち込むとnginxへようこそのページに遷移します。
http://xxxxxxxxx.comでアクセスしようとすると同様にロード状態になり、最終的に応答時間が長すぎるために、
エラーページが表示されます。
回答1件
あなたの回答
tips
プレビュー