在Windows 11环境下,使用上述命令生成自签名证书时,需要注意的是Windows命令行不直接支持`<(command)`这样的进程替换语法。因此,您需要稍微调整方法来实现相同的目标。下面是分步骤的操作指南:
### 1. 安装OpenSSL
确保您已经在Windows 11上安装了OpenSSL。可以通过Chocolatey、Scoop等包管理器安装,或者直接从[Shining Light Productions](https://slproweb.com/products/Win32OpenSSL.html)下载安装包。
### 2. 创建扩展配置文件
由于不能直接在命令行中嵌入配置,您需要先创建一个包含额外扩展配置的文本文件。例如,创建一个名为`san_config.txt`的文件,内容如下:
```ini
[SAN]
subjectAltName = DNS:hostname,IP:192.168.1.101
```
### 3. 修改并执行OpenSSL命令
接下来,修改原始命令,使用上面创建的配置文件来指定额外的扩展。打开命令提示符或PowerShell(推荐以管理员身份运行),然后执行以下命令:
```powershell
openssl req ^
-newkey rsa:2048 ^
-x509 ^
-nodes ^
-keyout file.key ^
-out file.crt ^
-subj "/CN=Hostname" ^
-config C:\path\to\openssl.cnf ^
-extensions SAN ^
-sha256 ^
-days 3650
```
配置环境变量
openssl req -newkey rsa:2048 -x509 -nodes -keyout file.key -out file.crt -subj "/CN=Hostname" -config "D:\Program Files\OpenSSL-Win64\openssl.cnf" -extensions SAN -sha256 -days 3650
openssl req -newkey rsa:2048 -x509 -nodes -keyout file.key -out file.crt -subj "/CN=Hostname" -config "D:\Program Files\OpenSSL-Win64\openssl.cnf" -extensions SAN -sha256 -days 3650
这里假设您的OpenSSL配置文件位于`C:\path\to\openssl.cnf`,请根据实际情况替换。同时,您需要通过`-config`参数指定这个基本配置文件的位置,而扩展配置则通过前面创建的`san_config.txt`文件间接加入。
### 4. 合并配置文件(可选)
如果您希望一次性处理,可以临时合并基本配置文件`openssl.cnf`和扩展配置`san_config.txt`到一个新的临时文件,然后再用这个临时文件作为`-config`的参数。这可以通过批处理脚本或手动合并后临时保存一个新的配置文件来实现。
### 5. 导入证书到Windows信任存储
生成证书和密钥对之后,将证书导入到Windows的信任存储中:
1. 打开证书管理器(`certlm.msc` 对于本地计算机存储,或 `certmgr.msc` 对于当前用户存储)。
2. 导航到“受信任的根证书颁发机构” -> “证书”。
3. 右键选择“所有任务” -> “导入”,然后按照向导指示导入`file.crt`。
这样,您就在Windows 11上成功配置了一个带有Subject Alternative Name(SAN)扩展的自签名证书。
下载地址:Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions
Win64OpenSSL_Light-3_3_0.exe
---------------------------------------------------------
http-server
确保已经安装了npm和Node.js。然后,通过npm全局安装http-server
,如果尚未安装:
npm install -g http-server
3. 启动HTTPS服务
使用http-server
启动HTTPS服务,需指定证书和私钥文件路径:
http-server -S -C "D:\Program Files\OpenSSL-Win64\bin\file.crt" -K "D:\Program Files\OpenSSL-Win64\bin\file.key" -p 10011
http-server -S -C "path\to\your\server.crt" -K "path\to\your\server.key" -p 8443
-S
开启HTTPS。-C
指定你的证书文件路径。-K
指定你的私钥文件路径。-p 8443
指定使用8443端口,因为HTTPS默认使用443端口,但作为非根用户可能无法直接绑定此端口。
---------------------------------------------------------------------------------------------------------------------------------