OpenSSL 证书生成
1. 安装OpenSSL工具
首先确保你已安装OpenSSL工具:
- Windows用户可以从 OpenSSL官网 下载安装
- macOS用户使用Homebrew:
brew install openssl
- Linux用户(如Ubuntu):
sudo apt-get install openssl
2. 生成私钥和证书请求(CSR)
# 生成2048位的RSA私钥
openssl genrsa -out private.key 2048
# 使用私钥生成证书签名请求(CSR)
openssl req -new -key private.key -out request.csr
系统会提示你输入证书信息:
- 国家代码(如CN)
- 省/州
- 城市
- 组织名称
- 部门名称
- 通用名称(重要!输入你的域名或IP,如127.0.0.1)
- 邮箱地址
3. 生成自签名证书
# 生成有效期为1年的自签名证书
openssl x509 -req -days 365 -in request.csr -signkey private.key -out certificate.crt
4. 生成PFX文件
# 将CRT和KEY合并为PFX文件
openssl pkcs12 -export -out certificate.pfx -inkey private.key -in certificate.crt
系统会提示你设置PFX密码(可留空但不推荐)
5. 验证生成的PFX文件
# 查看PFX文件内容
openssl pkcs12 -info -in certificate.pfx
6. 安装证书到Windows系统
- 双击PFX文件
- 选择"本地计算机"存储位置
- 输入PFX密码(如果有)
- 选择"将所有证书放入下列存储"
- 选择"受信任的根证书颁发机构"
- 完成导入
7. 在IIS中使用PFX证书
- 打开IIS管理器
- 选择服务器节点
- 双击"服务器证书"
- 点击"导入"
- 选择你的PFX文件并输入密码
- 在网站绑定中选择HTTPS和你的证书
高级选项:包含SAN(主题备用名称)
如果需要为多个域名/IP生成证书,创建san.cnf文件:
[req]
default_bits = 2048
prompt = no
default_md = sha256
distinguished_name = dn
req_extensions = req_ext
[dn]
C = CN
ST = Beijing
L = Beijing
O = MyCompany
OU = IT
CN = mydomain.com
[req_ext]
subjectAltName = @alt_names
[alt_names]
DNS.1 = mydomain.com
DNS.2 = www.mydomain.com
IP.1 = 127.0.0.1
然后使用以下命令生成证书:
openssl req -new -key private.key -out request.csr -config san.cnf
openssl x509 -req -days 365 -in request.csr -signkey private.key -out certificate.crt -extensions req_ext -extfile san.cnf
注意事项
- 自签名证书仅适用于开发和测试环境
- 生产环境应使用正规CA颁发的证书
- 妥善保管私钥文件(private.key)
- PFX密码应设置为强密码
- 证书过期后需要重新生成