现在 lnmp 已经2.0 版本了,直接通过脚本生成 SSL 证书应该没问题了,但海天的一个 vps 安装的是 lnmp1.9之前的版本,之前添加的网站和生成的对应 SSL 都正常使用。但是新添加一个网站的时候却出错了,一共碰到两个错误,一个是生成 SSL 证书的时候提示升级邮箱账号,第二提示没有找到证书。
原来是acme.sh脚本升级后的原因,解决方法如下:
生成SSL 证书时,提示升级邮箱账号
生成 SSL 证书时候,有提示:Please update your account with an email address first.
其实在下面也有提示了升级账号的方法,就是找到你的 acme.sh 脚本,然后运行
acme.sh --register-account -m myemail@example.com --server zerossl
其中myemail@example.com 改为你的邮箱即可。
生成 SSL 证书后,提示没有找到证书
根据提示找到 nginx 的 SSL 证书文件夹,发现新生成的证书文件夹,后缀加上了 “_ecc”,所以才会报错提示没有找到证书。
这是因为acme.sh最近升级将默认生成RSA的SSL证书,调整为ECC证书,所以生成的SSL证书目录里acme.sh给加带上了_ecc的字样。
根据 lnmp脚本的作者licess给出的解决方案:
1、执行如下命令,使用作者提供的脚本进行修复
bash <(curl -s http://soft.vpser.net/lnmp/ext/fix_ssl_20230205.sh)
2、编辑 /bin/lnmp
查找 --issue ${letsdomain} -w ${vhostdir}
替换为
--issue ${letsdomain} -w ${vhostdir} -k 2048
注意,这个前后都有空格,所有匹配的都替换掉
然后 rm -rf /usr/local/nginx/conf/ssl/www.domain.com_ecc/ 并将 /usr/local/nginx/conf/vhost/www.domain.com.conf 中的ssl站点的整个server段删除,然后重新 lnmp ssl add 进行添加
3、修改 /usr/local/acme.sh/acme.sh 查找
DEFAULT_ACCOUNT_KEY_LENGTH=ec-256
DEFAULT_DOMAIN_KEY_LENGTH=ec-256
将后面的ec-256都更改为2048 保存,然后再 rm -rf /usr/local/nginx/conf/ssl/www.domain.com_ecc/ 并将 /usr/local/nginx/conf/vhost/www.domain.com.conf 中的ssl站点的整个server段删除,然后重新 lnmp ssl add 进行添加
但是这样每次acme.sh升级了都需要再修改一下ec-256。
老兄见字如晤,友链的胡东东博客更新为东哥笔记啦,链接是https://ddceo.com,方便时可以更新一下
@东哥笔记 ok 已更新