文档中心
LNMP鐜涓€閿惌寤篠SL璇佷功淇濆绾ф暀绋?閬垮潙鎸囧崡
时间 : 2025-09-27 16:23:08浏览量 : 2

****
“我的网站为什么被浏览器标记‘不安全’?”这是很多新手站长遇到的第一个安全问题。其实,只需一张SSL证书(即“小绿锁”),就能让网站从`http://`升级到`https://`,数据加密传输,用户信任度飙升。本文以最常用的LNMP(Linux+Nginx+MySQL+PHP)环境为例,手把手教你从零部署SSL证书,并附赠常见坑点解决方案。
一、SSL证书是什么?为什么非用不可?
大白话解释:
想象你寄明信片,内容全公开,谁都能看(HTTP)。而SSL证书就像把明信片装进防偷窥信封(HTTPS),只有收件人能解密。
专业视角:
- 加密传输:防止数据被窃听(如密码、银行卡号)。
- 身份认证:证明网站真实身份,防钓鱼(比如假银行网站)。
- SEO加分:谷歌等搜索引擎优先排名HTTPS网站。
例子:
某电商网站未部署SSL,用户提交订单时密码被黑客截获;而用了SSL后,即使数据被截获也只是一串乱码。
二、LNMP环境下SSL证书的3种获取方式
1. 免费证书——Let's Encrypt(适合个人/测试)
```bash
通过Certbot自动获取(需提前安装):
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
```
- 优点:免费、自动化续签。
- 缺点:每3个月需续期一次。
2. 付费证书——DigiCert/Sectigo(适合企业)
- 流程举例:
1. 在商家平台购买证书,提交CSR文件(含域名、公钥)。
2. 验证域名所有权(邮箱/DNS解析)。
3. 下载证书文件(通常包含`.crt`和`.key`)。
3. 自签名证书(仅限内网测试)
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout self.key -out self.crt
?? 警告:浏览器会提示“不安全”,仅用于开发环境!
三、Nginx配置SSL证书的详细步骤(附代码)
假设你已拿到证书文件(如`domain.crt`和`domain.key`),按以下步骤操作:
1. 上传证书到服务器安全目录
sudo mkdir /etc/nginx/ssl/
sudo cp domain.crt domain.key /etc/nginx/ssl/
2. 修改Nginx配置文件
编辑站点配置文件(如`/etc/nginx/sites-enabled/yourdomain.conf`):
```nginx
server {
listen 443 ssl;
server_name yourdomain.com www.yourdomain.com;
ssl_certificate /etc/nginx/ssl/domain.crt;
ssl_certificate_key /etc/nginx/ssl/domain.key;
强制HTTP跳转到HTTPS
if ($scheme = http) {
return 301 https://$server_name$request_uri;
}
}
3. 重启Nginx生效
sudo nginx -t
测试配置是否正确
sudo systemctl restart nginx
四、必知的5个避坑指南!解决90%问题!
1. 错误1:“NET::ERR_CERT_AUTHORITY_INVALID”
- ?原因:证书链不完整。
- ?解决:合并中间证书到`.crt`文件:
```bash
cat domain.crt intermediate.crt > fullchain.crt
```
然后在Nginx中指向`fullchain.crt`。
2. 错误2:“SSL handshake failed”
- ?原因:服务器TLS版本过低。
- ?优化配置:
```nginx
ssl_protocols TLSv1.2 TLSv1.3;
禁用老旧的TLSv1.0/v1.1
3. 错误3:“Mixed Content”
- ?原因:网页内混用HTTP资源(如图片)。
- ?解决:将资源链接全改为`//example.com/resource.jpg`形式。
4. 性能优化——开启OCSP Stapling
```nginx
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 valid=300s;
```
5. 自动续期Let's Encrypt证书
加一条定时任务:
```bash
crontab -e
0 */12 * * * certbot renew --quiet && systemctl reload nginx
五、进阶技巧:提升安全性的额外措施
- HSTS头强制HTTPS:
```nginx
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
```
- CAA记录防伪造:
在DNS中添加一条记录,仅允许指定CA机构颁发证书。
*
部署SSL不再是“高级技能”,而是运维基本功。按照本文操作后,你的LNMP站点将拥有企业级HTTPS防护。如果遇到问题,欢迎在评论区留言讨论!
TAG:lnmp建立ssl证书,linux openssl制作ssl证书,自建ssl证书,自建ssl证书服务器,建立ssl连接,ssl证书创建