ssl新闻资讯

文档中心

Nginx濡備綍閰嶇疆80鍜?43绔彛锛烻SL璇佷功瀹夎鍏ㄦ敾鐣?txt

时间 : 2025-09-27 16:26:49浏览量 : 3

2Nginx濡備綍閰嶇疆80鍜?43绔彛锛烻SL璇佷功瀹夎鍏ㄦ敾鐣?txt

作为一名网络安全从业者,我经常遇到客户询问如何正确配置Nginx的80(http)和443(https)端口,以及如何安装SSL证书。今天我就用大白话给大家详细讲解,保证看完就能上手操作!

一、Nginx的80和443端口是什么?

简单来说:

- 80端口:是HTTP协议的默认端口,用于普通的网页浏览

- 443端口:是HTTPS协议的默认端口,用于加密的安全网页浏览

举个例子:

当你在浏览器输入"http://example.com"时(注意没有s),实际上访问的是服务器的80端口;而输入"https://example.com"时(带s),访问的就是443端口。

二、为什么要把网站从80升级到443?

从安全角度讲有三大理由:

1. 防窃听:没有HTTPS时,你和网站之间的所有通信都是明文的。想象你在咖啡厅用公共WiFi登录网站账号——旁边懂技术的人可以轻松看到你的用户名密码!而HTTPS会加密这些数据。

2. 防篡改:攻击者可能在你访问的网页中插入恶意代码。比如你下载一个软件,中间人可能把正常软件替换成病毒版本。

3. 身份验证:SSL证书能证明你访问的是真正的官网而不是钓鱼网站。就像你去银行办事要看工作人员工牌一样。

三、Nginx配置实战演示

1. 基础80端口配置

先看一个最简单的Nginx配置文件(通常在/etc/nginx/sites-available/default):

```nginx

server {

listen 80;

监听80端口

server_name example.com;

你的域名

location / {

root /var/www/html;

网站文件存放路径

index index.html;

默认首页文件

}

}

```

2. SSL证书获取

常见有三种方式:

- 免费证书:Let's Encrypt(三个月有效期)

- 付费证书:DigiCert、GeoTrust等(一年期)

- 自签名证书(仅用于测试)

以Let's Encrypt为例:

```bash

sudo apt install certbot python3-certbot-nginx

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

这个命令会自动:

1. 验证域名所有权

2. 生成证书文件(保存在/etc/letsencrypt/live/)

3. 自动修改Nginx配置

3. HTTPS完整配置示例

listen 443 ssl;

关键变化在这里!

server_name example.com;

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

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

SSL优化配置

ssl_protocols TLSv1.2 TLSv1.3;

禁用不安全的旧协议

ssl_prefer_server_ciphers on;

root /var/www/html;

index index.html;

HSTS头(安全增强)

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

HTTP强制跳转HTTPS(重要!)

listen 80;

return 301 https://$host$request_uri;

4. Nginx安全加固小技巧

除了基本配置外,安全人员还会做这些:

1) 禁用旧版TLS协议

ssl_protocols TLSv1.2 TLSv1.3;

TLSv1.0和TLSv1.1已被证实存在漏洞

2) 启用OCSP装订

```nginx

ssl_stapling on;

ssl_stapling_verify on;

这相当于给SSL证书再加一道验证环节

3) 设置安全的加密套件

ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384...';

就像给保险箱换更复杂的密码锁

四、常见问题排查指南

Q1: HTTPS页面加载混合内容怎么办?

错误提示:"此页面部分内容不安全"

解决方法:

- Chrome按F12 → Console查看具体哪个资源是http的

- HTML代码中确保所有图片/js/css都使用//或https://开头

Q2: SSL证书过期怎么处理?

Let's Encrypt证书每90天过期一次,建议设置自动续期:

```bash

sudo crontab -e

添加一行:

0 */12 * * * certbot renew --quiet --deploy-hook "systemctl reload nginx"

Q3: Nginx报错"no "ssl_certificate" is defined"

检查:

1) cert路径是否正确(注意pem文件的权限)

2) nginx -t测试配置文件语法

3) systemctl restart nginx后查看journalctl -xe日志

SEO优化小贴士

搜索引擎现在明显偏爱HTTPS网站:

? Google明确表示HTTPS是排名因素之一

? Chrome浏览器对HTTP网站显示"不安全"警告

? HTTP/2协议必须基于HTTPS才能发挥最佳性能

建议做完HTTPS后到Google Search Console提交新的sitemap!

希望这篇指南能帮你轻松搞定Nginx的SSL配置。记住在网络安全领域,"不加密=裸奔",赶快给你的网站穿上'加密外套'吧!如果还有疑问欢迎留言讨论~

TAG:nginx 80 443 ssl证书,nginx ssl pem,nginx安装ssl证书,nginx ssl_ciphers