打开网站发现提示不安全,点击查看警告信息确认是使用的证书过期导致的。
登录aliyun主机查看定时更新证书的crontab:
# crontab -l
2 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null
可以看到每天半夜会检查更新一次,是不是脚本执行时出错了呢?
直接复制命令执行:
# "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh"
[2021年 01月 07日 星期四 22:00:13 CST] ===Starting cron===
[2021年 01月 07日 星期四 22:00:13 CST] Renew: 'tianlang.tech'
[2021年 01月 07日 星期四 22:00:13 CST] Skip, Next renewal time is: Mon Jan 25 16:03:12 UTC 2021
[2021年 01月 07日 星期四 22:00:13 CST] Add '--force' to force to renew.
[2021年 01月 07日 星期四 22:00:13 CST] Skipped tianlang.tech
[2021年 01月 07日 星期四 22:00:13 CST] ===End cron===
提示证书已经更新过了,下次更新要到25号,如果需要强制更新可以使用--force参数,那就强制更新吧:
# "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" --force
[2021年 01月 07日 星期四 22:01:20 CST] ===Starting cron===
[2021年 01月 07日 星期四 22:01:20 CST] Renew: 'tianlang.tech'
[2021年 01月 07日 星期四 22:01:21 CST] Multi domain='DNS:tianlang.tech,DNS:*.tianlang.tech'
[2021年 01月 07日 星期四 22:01:21 CST] Getting domain auth token for each domain
[2021年 01月 07日 星期四 22:01:30 CST] Getting webroot for domain='tianlang.tech'
[2021年 01月 07日 星期四 22:01:30 CST] Getting webroot for domain='*.tianlang.tech'
[2021年 01月 07日 星期四 22:01:30 CST] Adding txt value: hWwFGR9GQ8GwS3-vd0EaR7pa0eqflPDgHcVEOJdJD6k for domain: _acme-challenge.tianlang.tech
[2021年 01月 07日 星期四 22:01:32 CST] The txt record is added: Success.
[2021年 01月 07日 星期四 22:01:32 CST] Adding txt value: Fs6aO8pvyNeOiErzAkYtZCZSZPcXcHX8inuDDZzld-8 for domain: _acme-challenge.tianlang.tech
[2021年 01月 07日 星期四 22:01:34 CST] The txt record is added: Success.
[2021年 01月 07日 星期四 22:01:34 CST] Let's check each DNS record now. Sleep 20 seconds first.
[2021年 01月 07日 星期四 22:01:55 CST] Checking tianlang.tech for _acme-challenge.tianlang.tech
[2021年 01月 07日 星期四 22:01:59 CST] Domain tianlang.tech '_acme-challenge.tianlang.tech' success.
[2021年 01月 07日 星期四 22:01:59 CST] Checking tianlang.tech for _acme-challenge.tianlang.tech
[2021年 01月 07日 星期四 22:02:02 CST] Domain tianlang.tech '_acme-challenge.tianlang.tech' success.
[2021年 01月 07日 星期四 22:02:02 CST] All success, let's return
[2021年 01月 07日 星期四 22:02:02 CST] Verifying: tianlang.tech
[2021年 01月 07日 星期四 22:02:08 CST] Pending
[2021年 01月 07日 星期四 22:02:11 CST] Pending
[2021年 01月 07日 星期四 22:02:15 CST] Success
[2021年 01月 07日 星期四 22:02:15 CST] Verifying: *.tianlang.tech
[2021年 01月 07日 星期四 22:02:19 CST] Success
[2021年 01月 07日 星期四 22:02:19 CST] Removing DNS records.
[2021年 01月 07日 星期四 22:02:19 CST] Removing txt: hWwFGR9GQ8GwS3-vd0Eapa0eqfJdJD6k for domain: _acme-challenge.tianlang.tech
[2021年 01月 07日 星期四 22:02:22 CST] Removed: Success
[2021年 01月 07日 星期四 22:02:22 CST] Removing txt: Fs6aO8pvyNeOiErzAkYtZCZSZPcXinuDDZzld-8 for domain: _acme-challenge.tianlang.tech
[2021年 01月 07日 星期四 22:02:25 CST] Removed: Success
[2021年 01月 07日 星期四 22:02:25 CST] Verify finished, start to sign.
[2021年 01月 07日 星期四 22:02:25 CST] Lets finalize the order, Le_OrderFinalize: https://acme-v02.api.letsencrypt.org/acme/finalize/92657238/7....
[2021年 01月 07日 星期四 22:02:30 CST] Download cert, Le_LinkCert: https://acme-v02.api.letsencrypt.org/acme/cert/.....
[2021年 01月 07日 星期四 22:02:39 CST] Cert success.
-----BEGIN CERTIFICATE-----
......
-----END CERTIFICATE-----
[2021年 01月 07日 星期四 22:02:39 CST] Your cert is in /root/.acme.sh/tianlang.tech/tianlang.tech.cer
[2021年 01月 07日 星期四 22:02:39 CST] Your cert key is in /root/.acme.sh/tianlang.tech/tianlang.tech.key
[2021年 01月 07日 星期四 22:02:39 CST] The intermediate CA cert is in /root/.acme.sh/tianlang.tech/ca.cer
[2021年 01月 07日 星期四 22:02:39 CST] And the full chain certs is there: /root/.acme.sh/tianlang.tech/fullchain.cer
[2021年 01月 07日 星期四 22:02:39 CST] ===End cron===
更新成功后,访问www.tianlang.tech依然提示不安全,尴了个尬了.才想器是不是nginx没有重新加载证书或者加载证书不是新生成的,查看nignx配置:
# cat /etc/nginx/conf.d/https.www.tianlang.tech.conf
server {
listen 443 http2 ssl;
ssl_certificate /root/.acme.sh/tianlang.tech/fullchain.cer;
ssl_certificate_key /root/.acme.sh/tianlang.tech/tianlang.tech.key;
ssl_trusted_certificate /root/.acme.sh/tianlang.tech/ca.cer;
server_name tianlang.tech www.tianlang.tech;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;#location / {
# root /home/www/web/www.zhuaniqiu.com;
# index index.html index.htm;
#}#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
location / {
proxy_pass http://127.0.0.1:8018;
}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
确认证书路径正确(可以匹配生成脚步执行日志).再执行nginx reload:
# nginx -s reload
终于可以正常访问了,一开始要是先检查证书是否是新的就好了,这样就可以确认是nignx没有reload还是证书没有更新的问题了,想当然了!