집에 작은 테스트 서버가 있고 유효한 인증서를 얻기 위해 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;
}
}
두 번째 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
}
정확히 무엇이 잘못되었는지, 왜 이 두 줄이 있는지(물론 오류가 반복되는 것을 피하기 위해) 궁금하지만 문제는 해결된 것 같습니다.