Nginx的https

1.HTTPS 概述


什么是 HTTPS?
HTTPS 是 HTTP 的安全版本,在 HTTP 和 TCP 之间加⼊了 SSL/TLS 加密层。所有传
输的数据都经过加密,防⽌被窃听和篡改。
HTTPS 的三⼤作⽤:
第⼀,加密传输。数据在传输过程中被加密,第三⽅⽆法窃听。
第⼆,身份验证。通过证书验证服务器身份,防⽌访问假冒⽹站。
第三,数据完整性。确保数据在传输过程中未被篡改。

2.SSL证书

3. 阿⾥云/腾讯云 SSL 证书获取流程


步骤⼀:购买证书
登录阿⾥云控制台,进⼊"数字证书管理服务",选择购买 SSL 证书。可选择免费证书
(DV 单域名)或付费证书。
步骤⼆:申请证书
填写要绑定的域名,选择验证⽅式(推荐 DNS 验证)。
步骤三:域名验证
按照提示添加 DNS 解析记录,等待验证通过。
步骤四:下载证书
验证通过后,选择"Nginx"服务器类型下载证书。

4. nginx配置证书https,指向域名

具体流程如下:

1. 前置准备:域名解析与证书

域名 DNS 解析:登录你的域名服务商(如阿里云、腾讯云)后台,添加一条 A 记录,将你的域名(如 example.com)指向你服务器的 公网 IP 地址。解析生效通常需要几分钟到几小时。

获取 SSL 证书:

免费证书:推荐使用 Let's Encrypt 的 Certbot 工具自动申请和续期(命令如 certbot --nginx -d example.com)。

手动上传:如果你从云厂商或 CA 机构购买了证书,会拿到一个证书文件(通常为 .crt或 .pem)和一个私钥文件(.key),将它们上传至服务器(例如存放到 /etc/nginx/ssl/目录下)

2. 配置 Nginx (HTTPS Server 块)

编辑 Nginx 配置文件(如 /etc/nginx/nginx.conf或 /etc/nginx/conf.d/default.conf),新增一个监听 443 端口的 server块:

server {
    # 监听 443 端口,开启 ssl,若 Nginx 版本 >= 1.15.0 推荐写法:listen 443 ssl;
    listen 443 ssl http2;
    server_name example.com www.example.com; # 替换为你的域名

    # === SSL 证书路径配置 ===
    ssl_certificate      /etc/nginx/ssl/fullchain.crt; # 证书文件路径
    ssl_certificate_key  /etc/nginx/ssl/private.key;  # 私钥文件路径

    # === 安全优化(推荐)===
    ssl_protocols TLSv1.2 TLSv1.3; # 仅启用安全的 TLS 协议
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;

    # === 网站根目录或反向代理配置 ===
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        # 如果是反向代理后端服务,可配置:proxy_pass http://localhost:8080;
    }
}

为了让用户访问 80 端口时自动跳转到加密的 HTTPS,可以保留或添加一个监听 80 端口的 server 块,做 301 重定向:

server {
    listen 80;
    server_name example.com www.example.com;
    # 将所有 HTTP 请求永久重定向到 HTTPS
    return 301 https://$server_name$request_uri;
}

然后检查,重载

nginx -t

systemctl reload nginx

P:源码安装的nginx可能不在etc下,所以命令要对应更改

最后,在浏览器访问 https://你的域名(注:80,443都是高危端口,容易被备案卡住,自行测试可以先用别的端口)

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐