在 Windows 上生成本地 SSL 证书并使用 HTTPS 访问本地 Nginx 服务器

引言

在开发和测试过程中,使用 HTTPS 进行本地开发可以模拟生产环境,确保应用程序在实际部署时的安全性。本文将介绍如何在 Windows 环境中生成本地 SSL 证书,并将其配置到 Nginx 服务器上,以便通过 HTTPS 访问本地服务器。

安装必要工具

安装 OpenSSL

OpenSSL 是一个用于生成和管理 SSL/TLS 证书的工具。下载并安装 OpenSSL:

  1. 访问 OpenSSL 的 Windows 安装程序
  2. 下载适合你 Windows 版本的安装程序(例如 Win64 OpenSSL v3.3.1)。
    按照安装程序的提示完成安装。
  3. 安装后配置把D:Program FilesOpenSSL-Win64in配置到环境变量。
安装 Nginx

我使用的是PHPStudy集成环境,自带Nginx服务器。

生成本地 SSL 证书

创建证书和私钥
  1. 打开命令提示符(cmd)或 PowerShell。

  2. 运行以下命令生成一个新的私钥和自签名证书:

    openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout localhost.key -out localhost.crt

参数说明:

  • -x509:指定生成自签名证书。
  • -nodes:不对私钥加密。
  • -days 365:证书有效期为 365 天。
  • -newkey rsa:2048:生成一个新的 RSA 密钥。
  • -keyout:指定私钥输出路径。
  • -out:指定证书输出路径。
  1. 在提示符下,输入证书信息
    • 国家:填写CN
    • 州/省:填写ShandDong(根据自身情况填写即可)
    • 市:填写QingDao(根据自身情况填写即可)
    • 组织:填写公司名称英文即可(根据自身情况填写即可)
    • 组织单位:填写部门名称英文即可(根据自身情况填写即可)
    • 公共名称:对于本地开发,Common Name 应设置为 localhost
    • 电子邮件: (根据自身情况填写即可)

配置 Nginx 使用 SSL

修改 Nginx 配置文件

打开 Nginx 配置文件(nginx.conf)。该文件通常位于 Nginx 安装目录的 conf 子目录下。或者vhost目录下的子域名配置文件。

编辑配置文件,添加以下内容以启用 HTTPS:

复制代码
server {
        listen        443 ssl;
        server_name  localhost;
        root   "D:/phpstudy_pro/WWW";
		
		ssl_certificate D:/phpstudy_pro/Extensions/Nginx1.15.11/conf/ssl/localhost.crt;
		ssl_certificate_key D:/phpstudy_pro/Extensions/Nginx1.15.11/conf/ssl/localhost.key;
	
        location / {
            index index.php index.html;
        }
        location ~ .php(.*)$ {
            fastcgi_pass   127.0.0.1:9009;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }
}

配置了 HTTPS 监听(端口 443),并指定了证书和私钥的位置。配置文件内容根据自己的实际情况配置。

重新启动 Nginx

根据实际情况重启Nginx服务器。

测试 HTTPS 配置

  1. 打开浏览器,访问 https://localhost
  2. 浏览器可能会提示不安全的证书。由于我们使用的是自签名证书,浏览器无法验证其真实性。你可以选择忽略警告并继续访问。
  3. 如果一切配置正确,你应该能够看到 Nginx 的欢迎页面或你配置的网页内容。

常见问题

浏览器警告

自签名证书不会被浏览器信任,你可以将证书添加到受信任的根证书颁发机构来避免警告。操作方法因浏览器不同而有所不同。

证书过期

自签名证书有一个有效期(本文中设置为 365 天)。证书过期后,你需要重新生成证书并更新 Nginx 配置。

总结

通过以上步骤,你已成功在 Windows 环境中生成本地 SSL 证书,并配置 Nginx 以支持 HTTPS。使用 HTTPS 进行本地开发可以确保你的应用在实际部署时符合安全要求,并提供更好的用户体验。如果你遇到任何问题或有任何疑问,请在评论区留言讨论。

相关推荐
jyOverQ8 小时前
ChatGPT Windows 客户端点击无反应、有进程却没窗口?一次 MSIX 非系统盘启动卡死的完整排查
windows·chatgpt
MyFreeIT9 小时前
Let‘s Encrypt SSL 製作免費證書
网络协议·https·ssl
还是大剑师兰特11 小时前
MySQL8.0 Windows完整安装教程
windows·mysql·大剑师
00后程序员张12 小时前
Android证书绑定抓包失败?Android SSL Pinning绕过实战指南
android·网络协议·计算机网络·网络安全·adb·https·ssl
redfred13 小时前
HandBrake 使用教程:开源视频压缩工具 视频太大压缩 MKV转MP4 批量转码 硬件加速 Windows/macOS/Linux
windows·开源·音视频
kakakahahahaha13 小时前
【Windows】C盘拒绝访问0x80070005的7步排查
windows·电脑·内容运营·软件需求
唐古乌梁海15 小时前
传输协议https-TCP
网络协议·tcp/ip·https
武帝为此15 小时前
【TLS SSL 介绍】
网络·网络协议·ssl
万年咸鱼16 小时前
Java ArrayList 详解:原理、用法与实战
java·开发语言·windows
奈斯先生Vector16 小时前
本地图片识别怎么接入多模态 AI?用 Python API 理解 GPT-4o Vision 的真实工作流
开发语言·人工智能·windows·python·网络协议·http·aigc