文档中心
LNMP鐜濡備綍杞绘澗娣诲姞SSL璇佷功锛熸墜鎶婃墜鏁欎綘瀹炵幇HTTPS鍔犲瘑锛堥檮璇︾粏姝ラ锛?txt
时间 : 2025-09-27 16:23:10浏览量 : 2

在当今互联网安全至上的时代,为网站添加SSL证书已成为标配。无论是保护用户数据隐私,还是提升搜索引擎排名(Google明确将HTTPS作为排名因素),SSL证书都不可或缺。本文将以LNMP环境(Linux + Nginx + MySQL + PHP)为例,用最通俗的语言和实操案例,带你一步步完成SSL证书的配置。
一、为什么LNMP环境必须加SSL证书?
案例1:假设你运营一个电商网站,用户登录时输入的密码若未经加密(HTTP),黑客通过咖啡厅Wi-Fi就能轻松截获这些信息。而HTTPS会通过SSL/TLS协议加密传输数据,即使被截获也是乱码。
案例2:Chrome浏览器会对非HTTPS网站标记“不安全”,导致用户信任度直线下降。某论坛站长反馈,启用SSL后跳出率降低了30%。
二、准备工作:获取SSL证书的3种常见方式
1. 免费证书(Let's Encrypt)
适合个人博客、小型网站,90天有效期但可自动续签。
*示例命令*:
```bash
sudo certbot --nginx -d yourdomain.com
```
Certbot会自动为Nginx配置证书。
2. 付费证书(DigiCert/Sectigo等)
适合企业级网站,提供更高保险额度和OCSP加速。
*文件通常包括*:
- `yourdomain.crt`(公钥)
- `yourdomain.key`(私钥)
- 可能的CA中间证书链。
3. 自签名证书(测试用)
本地开发时可用OpenSSL生成,但浏览器会警告“不安全”。
*生成命令*:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout selfsigned.key -out selfsigned.crt
三、Nginx配置SSL证书详细步骤(以付费证书为例)
步骤1:上传证书文件
将获得的`.crt`和`.key`文件上传到服务器,推荐存放路径:
```bash
/etc/nginx/ssl/yourdomain.crt
/etc/nginx/ssl/yourdomain.key
```
步骤2:修改Nginx配置文件
找到网站的Nginx配置(通常在`/etc/nginx/sites-available/yourdomain.conf`),在80端口的server块下方新增443端口配置:
```nginx
server {
listen 443 ssl;
server_name yourdomain.com www.yourdomain.com;
ssl_certificate /etc/nginx/ssl/yourdomain.crt;
ssl_certificate_key /etc/nginx/ssl/yourdomain.key;
强制启用TLS1.2以上更安全的协议
ssl_protocols TLSv1.2 TLSv1.3;
其他原有配置(如root目录、PHP处理等)
}
步骤3:HTTP强制跳转HTTPS
在原有80端口的配置中添加301重定向:
listen 80;
return 301 https://$host$request_uri;
步骤4:测试并重启Nginx
sudo nginx -t
测试语法是否正确
sudo systemctl restart nginx
四、常见问题排查与优化技巧
Q1:浏览器提示“证书不受信任”?
- 原因:可能缺少中间证书链。解决方法是将CA提供的中间证书合并到`.crt`文件中:
```bash
cat yourdomain.crt intermediate.crt > combined.crt
```
- 验证工具:使用[SSL Labs测试](https://www.ssllabs.com/ssltest/)检查完整性问题。
Q2:如何提升HTTPS性能?
- 开启OCSP Stapling减少验证延迟:
```nginx
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 valid=300s;
- 启用HTTP/2(需在listen后添加http2参数)提升加载速度。
Q3:续签失败怎么办?
如果是Let's Encrypt证书,检查Certbot日志:
```bash
journalctl -u certbot --no-pager | tail -n20
常见原因包括域名解析失效或端口443被防火墙拦截。
五、进阶安全加固建议
1. 禁用老旧加密算法防止降级攻击:
```nginx
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
2. 开启HSTS头强制浏览器始终使用HTTPS:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
3. 定期监控证书过期时间,可搭配Zabbix或Prometheus告警。
通过以上步骤,你的LNMP网站已成功升级到HTTPS。安全无小事,一个简单的配置就能大幅降低数据泄露风险。如果遇到问题欢迎留言讨论!
TAG:lnmp添加SSL证书,如何添加ssl证书,lnmp使用教程,lnmp绑定域名,lnmp安装sg11,lnmp怎么用