在Ubuntu上配置LNMP(Linux, Nginx, MySQL, PHP)的SSL证书可以通过以下步骤完成。我们将使用Let’s Encrypt提供的免费SSL证书。
Certbot是一个自动化的工具,用于获取和续订Let’s Encrypt证书。
sudo apt update
sudo apt install certbot python3-certbot-nginx
使用Certbot获取SSL证书。运行以下命令并按照提示操作:
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
--nginx
参数告诉Certbot自动配置Nginx。-d yourdomain.com
和 -d www.yourdomain.com
是你的域名。Certbot会自动创建一个Nginx配置文件,并将SSL证书和私钥文件放在 /etc/letsencrypt/live/yourdomain.com/
目录下。
Certbot会自动测试Nginx配置是否正确。如果有错误,它会提示你修复。
sudo nginx -t
如果没有错误,重新加载Nginx以应用更改:
sudo systemctl reload nginx
Let’s Encrypt证书每90天过期一次,Certbot可以自动续订证书。
sudo crontab -e
在打开的编辑器中添加以下行:
0 0,12 * * * certbot renew --post-hook "systemctl reload nginx"
这行命令会在每天午夜和中午检查证书是否需要续订,并在续订后重新加载Nginx。
保存并关闭编辑器。
你可以使用浏览器访问你的域名,确保浏览器显示安全连接(锁形图标)。你也可以使用以下命令检查SSL配置:
sudo openssl s_client -connect yourdomain.com:443 -servername yourdomain.com
如果一切正常,你应该看到SSL握手成功的信息。
通过以上步骤,你已经在Ubuntu上成功配置了LNMP的SSL证书。现在你的网站应该通过HTTPS提供服务,并且用户访问时会看到安全连接的提示。