ssl新闻资讯

文档中心

LNMP鐜涓€閿惌寤篠SL璇佷功淇濆绾ф暀绋?閬垮潙鎸囧崡

时间 : 2025-09-27 16:23:08浏览量 : 2

2LNMP鐜涓€閿惌寤篠SL璇佷功淇濆绾ф暀绋?閬垮潙鎸囧崡

****

“我的网站为什么被浏览器标记‘不安全’?”这是很多新手站长遇到的第一个安全问题。其实,只需一张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证书创建