iis怎么创建文件选择上传窗口_实战经验:为本地服务器创建自签名证书链

有时需要生成一张自签名证书用于本地Web服务器来实现HTTPS。

一,以下为创建自签名证书的基本步骤:

1) 创建根证书

创建根证书需要的RSA私钥:

openssl genrsa -aes256 -out ca.key.pem 4096

根据RSA私钥创建根证书:

openssl req -config openssl_ca.cnf -key ca.key.pem -new -x509 -days 7300 -sha256 -extensions v3_ca -out ca.cert.pem

生成用于Windows系统的PFX格式的证书:

openssl pkcs12 -export -out ExampleRootCA.pfx -inkey ca.key.pem -in ca.cert.pem

2)创建中级证书

为了根证书安全,一般会创建中级证书并用根证书签名。

创建中级证书需要的RSA私钥:

openssl genrsa -aes256 -out intermediate.key.pem 4096

根据RSA私钥创建中级证书:

openssl req -config openssl_int.cnf -new -sha256 -key intermediate.key.pem -out intermediate.csr.pem

使用根证书为中级证书签名:

openssl ca -config openssl.cnf -extensions v3_intermediate_ca -days 3650 -notext -md sha256 -in intermediate.csr.pem -out intermediate.cert.pem

生成用于Windows系统的PFX格式的证书:

openssl pkcs12 -export -out ExampleIntermediateCA.pfx -inkey intermediate.key.pem -in intermediate.cert.pem

3) 创建服务器证书

创建服务器证书需要的RSA私钥:

openssl genrsa -aes256 -out www.example.com.key.pem 2048

创建www.example.com的证书:

openssl req -config openssl_int.cnf -key www.example.com.key.pem -new -sha256 -out www.example.com.csr.pem

使用中级证书为服务器证书签名

openssl ca -config openssl_int.cnf -extensions server_cert -days 375 -notext -md sha256 -in www.example.com.csr.pem -out www.example.com.cert.pem

生成用于Windows系统的PFX格式的证书:

openssl pkcs12 -export -out www.example.com.pfx -inkey www.example.com.key.pem -in www.example.com.cert.pem

4) 导入证书

通过MMC打开本地计算机的证书管理窗口,首先导入根证书和中级证书到各自分区,然后再IIS里导入服务器证书。

5) IIS绑定https

选择目标站点,编辑绑定,新增https绑定并选择服务器证书即可。

6) 修改HOSTS文件

因为我们申请的是www.example.com域名的证书,需要修改系统的HOSTS文件,添加以下对应关系:

127.0.0.1 www.example.com

7) 浏览器测试

直接在浏览器中输入:https://www.example.com/,观察是否能顺利访问并出现https的小绿锁标志。

二,可能碰到的问题:

1) Subject Alternative Name Missing

解决此问题的方法是修改openssl_int.cnf文件,添加如下alt_names配置项,并设置subjectAltName为@alt_names

[ alt_names ]

DNS.1 = www.example.com

[ server_cert ]

# Extensions for server certificates (`man x509v3_config`).

basicConstraints = CA:FALSE

nsCertType = server

nsComment = “OpenSSL Generated Server Certificate”

subjectKeyIdentifier = hash

authorityKeyIdentifier = keyid,issuer:always

keyUsage = critical, digitalSignature, keyEncipherment

extendedKeyUsage = serverAuth

subjectAltName = @alt_names

修改完成后,然后重新生成服务器证书即可。根证书和中级证书不需要重新生成。

2) 无效的COMMON NAME

解决无效CN的方法是:DNS.1和Common Name配置为相同的www.example.com,而不是127.0.0.1,然后在system32/drivers/etc/hosts文件里添加:

127.0.0.1 www.example.com

以上内容来自:细说 CA 和证书

文中使用到的cnf文件可以在github上找到。

743ac98018499fd9f8d30c40767193c8.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值