自从宝塔面板升级到 4.X 版本,新增了一键获取 Let’s Encrypt 免费证书功能。不过很多网友在使用的时候总是提示出错:说什么认证服务器不能访问你的域名,包括魏艾斯博客之前写宝塔 Linux 面板一键获取 Let’s Encrypt 免费证书教程的时候,开始也遇到过同样的问题导致无法安装,前面的教程里面有解决方案你可以去试试,实在不行了就看一下宝塔 Linux 面板添加Let’s Encrypt 免费证书时提示出错的解决方案。
关于手动获取 Let’s Encrypt 免费证书,有一个网站 ssl for free 可以给我们生成 Let’s Encrypt 免费证书要用到的 key 和 crt,把这个网站上申请的密匙文件粘贴到宝塔面板【使用其他证书】里面对应的输入框内保存后就可以实现 https 了。
前面在宝塔面板添加域名绑定网站等步骤就不说了。
现在来说说怎么样申请密匙文件:
1、打开 SSL For Free 官网:https://www.sslforfree.com/
2、在输入框内输入要申请证书的域名,输入完点击 Create Free SSL Certificate
3、如果申请的是一级域名直接输入域名即可,不用加 www 系统会自动添加带 www 和不带 www 的域名。
4、域名输入完后系统会提示验证你的域名使用权,提供 3 种验证方式:
4.1、Automatic FTP Verification (FTP 账户验证,输入你对应网站的 FTP 信息,系统会上传一个文件到你的服务器上)
4.2、Manual Verification (文件验证,系统会让你下载一个文件然后你把这个文件上传到你的服务上)
4.3、Manual Verification (域名 TXT 记录解析认证,根据系统提示你的主机名和记录值做一个 TXT 记录)
前两种方法相对简单,但是老魏在前后的多次测试中都提示验证失败,无奈使用最后一个方法。
点击 Manual Verification 后,再点击绿色按钮 Retry Manual Verification,下面要求在域名 NS 服务器中添加 TXT 记录,主机记录复制粘贴红框里面的内容,记录值复制粘贴绿框中的内容。按照提示一步步操作。
经过实践 DNSPOD 不支持 _acme.challenge.www.vpsss.net 这种子域名级数过多的 TXT 记录,更换为万网 DNS 服务器之后,添加就成功了。特意把万网的添加结果截图放上来给大家参考一下。
在你按照下图添加完 TXT 记录之后,需要等待一会,我这里大约 5/6 分钟就完全解析过去了,按照上图的验证方法也显示 TXT 记录解析成功。
选择对应的验证方式,成功验证后系统就会给你生成 3 个证书文件(证书有效期为 90 天,90 天后需要重新申请)。这里老魏验证了很多次才成功,大家要有点耐心。
6、申请成功后系统会给你三个密匙:
a、Certificate(证书)
b、Private Key(密匙)
c、CA Bundle (根证书)
7、把 【Certificate】 里面的所有文件粘贴到宝塔里面的 证书(CRT/PEM)
8、把 【Private Key】 里面的所有文件粘贴到宝塔里面的 密钥(KEY)
最后保存一下,稍等几秒钟就大功告成了。
比如说你打算把不带 www 的域名跳转到 www 域名,然后输入这两个域名中的任意一个都跳转到 https://www 域名这种效果,就要在宝塔面板中分别添加不带 www 域名的网站和带 www 域名的网站,不带 www 域名的网站做 301 重定向到带 www 域名的网站,然后在带 www 域名的 SSL-使用其他证书中按照上面获取的证书填进去,再保存一下就没问题了。最后宝塔面板会自动设置跳转到 https 的 www 域名。
但是这种手动添加方式默认是 90 天时间,没有自动续期。参考一下使用 crontab 让 lets encrypt 自动续期。
总结一下从宝塔 Linux 面板 3.X 开始就支持一键获取 Let’s Encrypt 免费证书了,当然因为种种原因无法实现自动获取,那么今天的手动获取也是一种方法,希望对遇到同样问题的朋友有帮助。