実現したいこと
よろしくお願いします。
Let's EncryptのSSL証明書発行ができず解決法を探しております。
さくらサーバのVPSを借りています。
OS:CentOS Stream 8
現在、私が構築していたサイトはSSL証明書の期限が切れており
https://abc.xyz.jp にアクセスすると「この接続ではプライバシーが保護されません」と出ている状態です。
コマンドを試し、エラーが出た結果は以下となっています。(一画面で見やすいように■■改行■■というところで改行を編集しています)
[root@abc123 html]# certbot certonly --webroot -w /var/www/html -d abc.xyz.jp Saving debug log to /var/log/letsencrypt/letsencrypt.log - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - An RSA certificate named abc.xyz.jp already exists. Do you want to update its key type to ECDSA? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (U)pdate key type/(K)eep existing key type: K Renewing an existing certificate for abc.xyz.jp Certbot failed to authenticate some domains (authenticator: webroot). The Certificate ■■改行■■ Authority reported these problems: Domain: abc.xyz.jp Type: unauthorized Detail: The key authorization file from the server did not match this challenge ■■改行■■ "ABcdEFgHIjKlmnABcdEFgHIjKlmn-ABcdEFgHIjKlmn_ABcdEFgHIjKlmn.ABcd1EF ■■改行■■ 2gH3Ij4Klmn_ABCDEF" != "<h1>Test</h1>" Hint: The Certificate Authority failed to download the temporary challenge files ■■改行■■ created by Certbot. Ensure that the listed domains serve their content from the ■■改行■■ provided --webroot-path/-w and that files created there can be downloaded from ■■改行■■ the internet. Some challenges have failed. Ask for help or search for solutions at https://community.letsencrypt.org. ■■改行■■ See the logfile /var/log/letsencrypt/letsencrypt.log or re-run ■■改行■■ Certbot with -v for more details.
この
"ABcdEFgHIjKlmnABcdEFgHIjKlmn-ABcdEFgHIjKlmn_ABcdEFgHIjKlmn.ABcd1EF ■■改行■■ 2gH3Ij4Klmn_ABCDEF" != "<h1>Test</h1>"
の照合しようとしている部分が、間違ってHTMLになってしまっているのが原因かなと思っています。
後述の「集めた情報」にもある、
[root@abc123 ~]# vi /etc/httpd/conf.d/vhost.conf ■■vhost.confの中身 ここから■■ <VirtualHost *:80> DocumentRoot /var/www/html ServerName abc.xyz.jp RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URL} [R=301,L] </VirtualHost> ■■vhost.confの中身 ここまで■■
に、ポート80のアクセスは、httpsでアクセスを行うようにする記述が原因かなと思っています。
.
.
サーバを構築して初めてSSL証明書を発行したときにはエラーが出ず、
https://abc.xyz.jp
へのアクセスは正しく表示されていました。
(Windows10のChromeで確認)
(AndroidのChromeから確認)
(iPhoneのSafariから確認)
SSL証明書は定期的に自動更新するように設定していたけど、素人技術で一度も成功しておらず今回も自動更新せず、証明書の有効期限が切れてから今回、手動での更新に至っています。そして上記の様なトラブルが発生中です。
調べる過程で必要と思われる情報について、以下のような情報を集めています。
集めた情報
[root@abc123 ~]# cd /etc/httpd/conf.d/ [root@abc123 conf.d]# ls README php.conf userdir.conf welcome.conf autoindex.conf ssl.conf vhost.conf [root@abc123 conf.d]# vi vhost.conf ■■vhost.confの中身 ここから■■ <VirtualHost *:80> DocumentRoot /var/www/html ServerName abc.xyz.jp RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URL} [R=301,L] </VirtualHost> ■■vhost.confの中身 ここまで■■
[root@abc123 conf.d]# cd /etc/nginx [root@abc123 nginx]# ls conf.d default.d [root@abc123 nginx]# cd default.d [root@abc123 default.d]# ls php.conf [root@abc123 default.d]# vi php.conf ■■php.confの中身 ここから■■ # pass the PHP scripts to FastCGI server # # See conf.d/php-fpm.conf for socket configuration # index index.php index.html index.htm; location ~ \.(php|phar)(/.*)?$ { fastcgi_split_path_info ^(.+\.(?:php|phar))(/.*)$; fastcgi_intercept_errors on; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_pass php-fpm; } ■■php.confの中身 ここまで■■ [root@abc123 default.d]# cd ../ [root@abc123 nginx]# ls conf.d default.d [root@abc123 nginx]# cd conf.d [root@abc123 conf.d]# ls php-fpm.conf ■■php-fpm.confの中身 ここから■■ # PHP-FPM FastCGI server # network or unix domain socket configuration upstream php-fpm { server unix:/run/php-fpm/www.sock; } ■■php-fpm.confの中身 ここまで■■
[root@abc123 conf.d]# firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: ens3 sources: services: cockpit dhcpv6-client ftp http https ssh ports: 52863/tcp 49162/tcp 5432/tcp protocols: forward: no masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
[root@abc123 conf.d]# cd /etc/letsencrypt/renewal/ [root@abc123 renewal]# ls abx.xyz.jp.conf [root@abc123 renewal]# vi abx.xyz.jp.conf ■■abx.xyz.jp.confの中身 ここから■■ # renew_before_expiry = 30 days version = 1.32.0 archive_dir = /etc/letsencrypt/archive/abx.xyz.jp cert = /etc/letsencrypt/live/abx.xyz.jp/cert.pem privkey = /etc/letsencrypt/live/abx.xyz.jp/privkey.pem chain = /etc/letsencrypt/live/abx.xyz.jp/chain.pem fullchain = /etc/letsencrypt/live/abx.xyz.jp/fullchain.pem # Options used in the renewal process [renewalparams] account = 1a234b567c8d901e2f3ab45c6de78901 authenticator = webroot webroot_path = /var/www/html, server = https://acme-v02.api.letsencrypt.org/directory key_type = rsa [[webroot_map]] abx.xyz.jp = /var/www/html ~ ■■abx.xyz.jp.confの中身 ここまで■■
もし、必要な情報が抜け落ちていましたら、申し訳ありません、すぐに提示したいと思います。
どのような情報でも嬉しいです。ご指導をお願いします。
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。