欢迎光临
我们一直在努力

nginx http改造https

场景 1:自签名证书(用于测试,不推荐生产环境)

1. 检查 OpenSSL 是否安装

先确认系统有 OpenSSL 工具,执行以下命令:

openssl version

如果输出类似 OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022),说明已安装;若提示未找到,需先安装(如 CentOS:yum install openssl,Ubuntu:apt install openssl)。

  • 创建证书存放目录(建议与配置文件同路径)

    # 创建证书存放目录(和之前Nginx配置的路径对应)
    mkdir -p /etc/nginx/ssl # 生成私钥和自签名证书(有效期3650天,约10年)

  • 2、# 替换 example.com 为你的域名/服务器IP(如 192.168.1.100)
    openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \\
      -keyout server.key \\
      -out server.crt \\
      -subj "/C=CN/ST=Shanghai/L=Shanghai/O=Test/OU=Test/CN=example.com"

    会生成2个文件

    调整文件权限(重要)

    确保 Nginx 进程能读取证书文件(Nginx 通常以 nginx 或 www-data 用户运行):

    chmod 600 /etc/nginx/ssl/example.com.key # 私钥必须设为600,避免权限过大

    chmod 644 /etc/nginx/ssl/example.com.crt

    2、 检查是否有ssl模块:nginx -v

    3、修改 Nginx 配置文件

    3.1打开 Nginx 主配置文件(路径通常为 /etc/nginx/nginx.conf 或 /usr/local/nginx/conf/nginx.conf)

    vi /etc/nginx/nginx.conf

    3.2替换 server 块内容,配置 HTTPS 监听,同时可添加 HTTP 自动跳转 HTTPS 规则

    # HTTPS 20005 端口核心配置
    server {
        listen 20005 ssl;
        server_name 192.168.1.200 yourdomain.com;  # 与证书 Common Name 一致

        # 证书路径(二选一)
        # 场景1:自签名证书
        ssl_certificate     /etc/nginx/ssl/server.crt;
        ssl_certificate_key /etc/nginx/ssl/server.key;
        # 场景2:正式证书
        # ssl_certificate     /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
        # ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;

        # SSL 安全优化配置(必配,提升安全性和性能)
        ssl_protocols TLSv1.2 TLSv1.3;  # 禁用低版本协议
        ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512;
        ssl_prefer_server_ciphers on;
        ssl_session_cache shared:SSL:10m;  # 会话缓存
        ssl_session_timeout 10m;

        # 站点根目录和默认页面(根据实际情况修改)
        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }
    }
     

    4、重启Nginx

    nginx -s reload

    5、测试 HTTPS 服务

    方式 1:命令行测试,返回 Nginx 默认页面内容(如 Welcome to nginx!)即为成功

    # 自签名证书测试(需加 -k 跳过证书验证)
    curl -k https://192.168.1.200

    # 正式证书测试(无需 -k)
    curl https://yourdomain.com

    方式 2:浏览器测试

  • 打开浏览器,输入 https://服务器IP 或 https://你的域名
  • 自签名证书会提示 “连接不安全”,点击高级→继续访问(仅测试用)
  • 正式证书会显示绿色锁图标,页面正常加载即为配置成功
  • 赞(0)
    未经允许不得转载:171主机测评 » nginx http改造https
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址