在 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 Files\OpenSSL-Win64\bin配置到环境变量。

安装 Nginx

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

生成本地 SSL 证书

创建证书和私钥

  1. 打开命令提示符(cmd)或 PowerShell。
  2. 运行以下命令生成一个新的私钥和自签名证书:
bash 复制代码
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:

nginx 复制代码
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 进行本地开发可以确保你的应用在实际部署时符合安全要求,并提供更好的用户体验。如果你遇到任何问题或有任何疑问,请在评论区留言讨论。

相关推荐
芜湖_1 个月前
CLion入门2.0(优雅进行STM32和ESP32开发)(船新版本)
stm32·esp32·开发环境·clion
疯狂学习GIS1 个月前
Windows部署NVM并下载多版本Node.js的方法(含删除原有Node的方法)
windows·node.js·node·nvm·版本管理·开发环境
疯狂学习GIS1 个月前
干净卸载Windows的Node.js环境的方法
windows·npm·node.js·node·删除·卸载·开发环境
SuperHeroWu72 个月前
【HarmonyOS】HarmonyOS和React Native混合开发 (一)之环境安装
react native·harmonyos·鸿蒙·开发环境·环境安装·rn·混合开发
witton2 个月前
使用IP自签名SSL证书
websocket·https·ssl·ip·js·ssl证书·自签名
zaim13 个月前
Http 转 https 中 Nginx 的详细配置过程
网络协议·nginx·http·https·apache·ssl证书·tls证书
davenian3 个月前
<QNAP 453D QTS-5.x> 日志记录:在 Docker 中运行的 Flask 应用安装 自签名 SSL 证书 解决 Chrome 等浏览器证书安全
网络·chrome·安全·容器·ssl证书·qnap·qnap nas
AlbertS4 个月前
使用 Let’s Encrypt 获取免费SSL证书
nginx·免费·centos7·ssl证书·let’s encrypt
racent锐成信息4 个月前
网站被SmartScreen标记为不安全怎么办?
https·ssl证书·服务器证书·网站不安全·smartscreen·可信ca
行者Sun19895 个月前
【羊毛资源】华为云开发者云主机免费申请使用指南
华为云·云计算·开发环境·云桌面·云服务器·免费资源