# SSL 证书目录 此目录用于存放 SSL/TLS 证书文件。 ## 生成自签名证书 ### Linux/Mac ```bash chmod +x scripts/generate_ssl_cert.sh ./scripts/generate_ssl_cert.sh ``` ### Windows **前提条件**: 需要先安装 OpenSSL #### 安装 OpenSSL (Windows) **详细安装指南请查看**: [docs/INSTALL_OPENSSL_WINDOWS.md](../docs/INSTALL_OPENSSL_WINDOWS.md) **快速安装方式**: 1. **使用 Git for Windows** (推荐,最简单) - Git for Windows 自带 OpenSSL - 下载: https://git-scm.com/download/win - 安装后,OpenSSL 会自动添加到 PATH - **安装目录**: 默认 `C:\Program Files\Git`(自动配置,无需手动设置) 2. **手动安装 OpenSSL** (如果不想安装 Git) - 下载: https://slproweb.com/products/Win32OpenSSL.html - 选择 "Win64 OpenSSL v3.x.x Light"(推荐) - **安装目录**: 推荐 `C:\Program Files\OpenSSL-Win64` - 安装时勾选 "Copy OpenSSL DLLs to The Windows system directory" - **配置 PATH**: 添加 `C:\Program Files\OpenSSL-Win64\bin` 到系统 PATH - 详细步骤请查看上面的安装指南 3. **使用 Chocolatey** (如果已安装) ```cmd choco install openssl ``` 4. **使用 WSL** (如果已安装 WSL) ```bash sudo apt-get update sudo apt-get install openssl ``` #### 验证 OpenSSL 安装 打开命令提示符或 PowerShell,运行: ```cmd openssl version ``` 如果显示版本信息,说明安装成功。 #### 生成证书 ```cmd scripts\generate_ssl_cert.bat ``` ## 手动生成证书 如果脚本无法运行,可以手动执行以下命令: ### 1. 生成私钥 ```bash openssl genrsa -out certs/server.key 2048 ``` ### 2. 生成证书签名请求 (CSR) ```bash openssl req -new -key certs/server.key -out certs/server.csr -subj "/C=CN/ST=State/L=City/O=Organization/CN=localhost" ``` ### 3. 创建配置文件 (server.conf) 创建文件 `certs/server.conf`,内容如下: ``` [req] distinguished_name = req_distinguished_name req_extensions = v3_req [req_distinguished_name] [v3_req] basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment subjectAltName = @alt_names [alt_names] DNS.1 = localhost DNS.2 = *.localhost IP.1 = 127.0.0.1 IP.2 = ::1 ``` ### 4. 生成自签名证书 ```bash openssl x509 -req -days 365 -in certs/server.csr -signkey certs/server.key -out certs/server.crt -extensions v3_req -extfile certs/server.conf ``` ### 5. 清理临时文件 ```bash rm certs/server.csr certs/server.conf ``` ## 使用证书 生成证书后,服务器会自动检测 `certs/server.key` 和 `certs/server.crt` 文件。 如果存在这些文件,服务器将自动启用 HTTPS。 访问地址: - HTTP: `http://localhost:8000` - HTTPS: `https://localhost:8000` ## 浏览器警告 自签名证书会在浏览器中显示安全警告,这是正常的。您可以: 1. **Chrome/Edge**: 点击"高级" -> "继续前往 localhost(不安全)" 2. **Firefox**: 点击"高级" -> "接受风险并继续" 3. **Safari**: 点击"显示详细信息" -> "访问此网站" ## 生产环境 ⚠️ **重要**: 自签名证书仅用于开发环境。在生产环境中,请使用由受信任的 CA(如 Let's Encrypt)签发的证书。 ## 文件说明 - `server.key`: 私钥文件(请妥善保管,不要泄露) - `server.crt`: 证书文件 - `.gitignore`: 已配置忽略证书文件,不会提交到版本控制