家には小さなテストサーバーがあり、有効な証明書を取得するためにLetsEncryptを登録しました。
証明書の有効期限が切れ、自動的に更新されません(害はありません。これはテスト目的でのみ使用されます)。
証明書をインストールした方法を覚えておらず、「Debian GNU / Linux 12(bookworm)」(該当する場合は実際にはLXDコンテナ)を実行しているサーバーに「certbot」がインストールされていません。
私はcertbot
標準的な取付けを使用します:
sudo apt update && sudo apt install certbot python3-certbot-nginx
その後、引き続き使用してください。
sudo certbot --nginx -d blog.mydomain.it
ところで、予期しないエラーが発生しました。
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Requesting a certificate for blog.mydomain.it
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/blog.mydomain.it/fullchain.pem
Key is saved at: /etc/letsencrypt/live/blog.mydomain.it/privkey.pem
This certificate expires on 2024-02-14.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.
Deploying certificate
Successfully deployed certificate for blog.mydomain.it to /etc/nginx/sites-enabled/blog.conf
We were unable to install your certificate, however, we successfully restored your server to its prior configuration.
NEXT STEPS:
- The certificate was saved, but could not be installed (installer: nginx). After fixing the error shown below, try installing it again by running:
certbot install --cert-name blog.mydomain.it
nginx restart failed:
2023/11/16 23:31:55 [emerg] 561#561: SSL_CTX_use_PrivateKey("/etc/letsencrypt/blog.mydomain.it_ecc/private.key") failed (SSL: error:05800074:x509 certificate routines::key values mismatch)
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.
以前の証明書のインストールと、私がやろうとしている作業が一致しないようですが、どうすればよいのかcertbot
わかりません。
役に立つと、以前の証明書を簡単に消去できますが、より大きな混乱を引き起こす前にその事実を知りたいです。
サーバー自体を中断することなく証明書を再インストールする必要があります(合理的なダウンタイムは問題ありません)。
修正する:
要求どおり(何の情報も追加しないようですが…):
mcon@webserver:~$ sudo certbot install --cert-name blog.mydomain.it
[sudo] password for mcon:
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Deploying certificate
Successfully deployed certificate for blog.mydomain.it to /etc/nginx/sites-enabled/blog.conf
We were unable to install your certificate, however, we successfully restored your server to its prior configuration.
nginx restart failed:
2023/11/17 09:08:38 [emerg] 3162#3162: SSL_CTX_use_PrivateKey("/etc/letsencrypt/blog.mydomain.it_ecc/private.key") failed (SSL: error:05800074:x509 certificate routines::key values mismatch)
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.
mcon@webserver:~$
アップデート2:
鉱山には/etc/nginx/sites-enabled/blog.conf
次の定義が含まれています。
server {
listen 443 ssl;
server_name blog.mydomain.it;
root /var/www/vitepress;
ssl_certificate /etc/letsencrypt/blog.mydomain.it/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/blog.mydomain.it/privkey.pem;
ssl_certificate /etc/letsencrypt/blog.mydomain.it/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/blog.mydomain.it_ecc/private.key;
location / {
index index.html;
try_files $uri $uri/ /index.html;
}
}
2番目ssl_certificate
/ssl_certificate_key
ペアをコメントアウトすると、実際に問題が解決しました。
現在私の(作業中!)インストールは次のとおりです。
server {
listen 443 ssl;
server_name blog.mydomain.it;
root /var/www/vitepress;
ssl_certificate /etc/letsencrypt/live/blog.mydomain.it/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/blog.mydomain.it/privkey.pem; # managed by Certbot
location / {
index index.html;
try_files $uri $uri/ /index.html;
}
}
server {
if ($host = blog.mydomain.it) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
server_name blog.mydomain.it;
return 404; # managed by Certbot
}
正確に何が間違っているのか、なぜこの2行があるのか(もちろんエラーが繰り返されるのを避けるために)疑問に思っていますが、問題は解決したようです。