Ubuntu 20.04 Nginx
我使用 certbot 获取了证书,例如 sudo certbot --nginx -d pvapp-2021.umwelt-campus.de。并将证书路径包含到我的两个 nginx 配置文件中(一个用于前端,一个作为节点的反向代理),例如:
ssl_certificate /etc/letsencrypt/live/pvapp-2021.umwelt-campus.de/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/pvapp-2021.umwelt-campus.de/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
当我向后端发出请求(例如登录)时,我收到错误:
Failed to load resource: net::ERR_CERT_DATE_INVALID tho the certificate definitely is valid.
我的后端是否需要额外的证书?如果需要,我该怎么做?还有什么可能导致错误?
也sudo certbot renew --dry-run
失败了。
我的 nginx 节点配置:(ssl 部分)
server {
listen 443 ssl;
listen [::]:443 ssl http2;
server_name pvapp-2021.umwelt-campus.de;
# point to ssl certificate path
ssl_certificate /etc/letsencrypt/live/pvapp-2021.umwelt-campus.de/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/pvapp-2021.umwelt-campus.de/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf;
root /var/www/client/pvapp-client/dist;
error_page 404 =200 /index.html;
location /backend {
proxy_pass http://localhost:60702;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_ssl_verify off;
}
感谢所有帮助。
答案1
俗话说你应该“相信错误消息”。它告诉你,net::ERR_CERT_DATE_INVALID
这意味着某个地方有一个证书被拒绝使用,因为它已经过期,或者被认为已经过期。
- 如果它确实已过期,则它可能是之前留下的旧证书。
- 如果只是相信已经过期,发出请求的客户端上的时间设置可能是错误的。
您可以首先检查配置中要求使用的 pem 文件是否过期:
openssl x509 -enddate -noout -in /etc/letsencrypt/live/pvapp-2021.umwelt-campus.de/fullchain.pem
openssl x509 -enddate -noout -in /etc/letsencrypt/live/pvapp-2021.umwelt-campus.de/privkey.pem
如果它们没问题,请使用类似的方法检查服务器和请求客户端上的时间设置(并提供输出)timedatectl
。
此外,您的配置并不完整:您已完成配置,include /etc/letsencrypt/options-ssl-nginx.conf;
但尚未显示此文件包含的内容。它很可能包含另一个证书(在上述证书之后加载),该证书将覆盖设置并加载旧证书。