ssl新闻资讯

文档中心

LNMP鐜瀹夎SSL璇佷功鍏ㄦ敾鐣ユ墜鎶婃墜鏁欎綘瀹炵幇HTTPS鍔犲瘑

时间 : 2025-09-27 16:23:10浏览量 : 3

什么是SSL证书?为什么需要它?

2LNMP鐜瀹夎SSL璇佷功鍏ㄦ敾鐣ユ墜鎶婃墜鏁欎綘瀹炵幇HTTPS鍔犲瘑

想象一下你正在咖啡馆用公共Wi-Fi登录网上银行,如果没有SSL证书,你的账号密码就像写在明信片上邮寄一样危险。SSL(安全套接层)证书就像给你的网站装了一个加密保险箱,所有传输的数据都会被"锁"起来,只有你和服务器有"钥匙"能打开。

具体来说,SSL证书能实现三个重要功能:

1. 加密传输:防止数据在传输过程中被窃听(比如信用卡号、密码等)

2. 身份认证:证明你访问的是真正的官网而非钓鱼网站

3. 提升信任度:浏览器地址栏会显示绿色小锁和"安全"字样

准备工作:获取SSL证书

选择证书类型

常见的SSL证书有几种:

- 免费型:Let's Encrypt(适合个人博客、测试环境)

- 付费型:DV(域名验证)、OV(组织验证)、EV(扩展验证),价格从几十到上万元不等

> *小知识:Let's Encrypt虽然免费,但每90天需要续期一次。付费证书通常有效期1-2年*

以Let's Encrypt为例获取证书

假设你的域名是`example.com`,可以通过Certbot工具快速获取:

```bash

sudo apt install certbot python3-certbot-nginx

sudo certbot --nginx -d example.com -d www.example.com

```

执行后会生成几个关键文件:

- `/etc/letsencrypt/live/example.com/fullchain.pem` (证书链文件)

- `/etc/letsencrypt/live/example.com/privkey.pem` (私钥文件)

LNMP环境下安装SSL证书详细步骤

情况一:使用LNMP一键安装包

如果你是用lnmp.org的一键包搭建的环境:

进入LNMP管理目录

cd /root/lnmp1.8

执行添加SSL命令

./vhost.sh ssl_add

按照提示输入域名和选择是否开启重定向(建议选是),脚本会自动完成配置。

情况二:手动配置Nginx

打开你的Nginx站点配置文件(通常在`/usr/local/nginx/conf/vhost/域名.conf`):

```nginx

server {

listen 443 ssl http2;

server_name example.com www.example.com;

SSL证书路径

ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;

ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

SSL优化配置

ssl_session_timeout 1d;

ssl_session_cache shared:MozSSL:10m;

ssl_protocols TLSv1.2 TLSv1.3;

ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;

其他原有配置...

}

HTTP强制跳转HTTPS

listen 80;

return 301 https://$host$request_uri;

MySQL和PHP的注意事项

虽然主要工作在Nginx层完成,但还需注意:

1. PHP应用:检查代码中是否有硬编码的HTTP链接,全部改为//或https://开头

2. MySQL连接:如果应用与数据库不在同一服务器,考虑启用SSL加密连接(性能会略有下降)

SSL配置优化与安全加固

OCSP装订提升性能

在Nginx配置中添加:

ssl_stapling on;

ssl_stapling_verify on;

ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;

resolver 8.8.8.8 valid=300s;

这相当于提前把"身份证复印件"准备好,省去了浏览器每次验证时查询的时间。

HSTS增强安全

添加HTTP头部强制使用HTTPS:

add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";

这就像告诉浏览器:"以后只准走安全通道!"

定期更新维护

对于Let's Encrypt证书,设置自动续期:

测试续期命令是否正常工作

sudo certbot renew --dry-run

添加到crontab每月自动执行续期

0 */12 * * * /usr/bin/certbot renew --quiet > /dev/null 2>&1 && /usr/local/openresty/bin/openresty -s reload > /dev/null

常见问题排错指南

SSL握手失败的可能原因及解决方式举例:

案例一

*症状*:浏览器提示"ERR_SSL_VERSION_OR_CIPHER_MISMATCH"

*诊断*:

openssl s_client -connect example.com:443 -tls1_2

测试TLS1.2支持情况

*解决*:调整ssl_protocols只保留TLSv1.2 TLSv1.3

案例二

*症状*:"NET::ERR_CERT_COMMON_NAME_INVALID"

```bash

openssl x509 -in fullchain.pem -text | grep DNS

检查证书包含的域名

*解决*:确保证书包含当前使用的完整域名

通过以上步骤和技巧,你的LNMP环境应该已经成功部署了SSL证书。记住网络安全没有终点线,定期检查更新才能确保长期安全。

TAG:lnmp安装ssl证书,lnmp 安装,linux安装ssl证书,ssl证书安装指南