p.c*_*ell 1 iis-7 ssl-certificate
我从 3rd 方证书颁发机构获得了 SSL 证书。这是一个.cer文件。该证书已安装并在 IIS7 中正常工作。
该证书将其预期用途显示为服务器身份验证、客户端身份验证。
该站点需要通过客户端证书进行身份验证。我们没有使用客户端证书映射,而只是使用客户端证书作为身份验证的一种措施——如果你有一个,你就通过了身份验证。
IIS(或大多数 HTTPD)中的客户端证书身份验证有些复杂。您必须将用户映射到证书。证书本身可以由服务器信任的任何 CA 颁发;您可以设置 AD CS 实例来颁发证书,甚至可以根据需要使用OpenSSL的本地副本来创建证书。
IIS.net上有一篇文章描述了客户端证书映射;以及有关启用它和以编程方式将证书与用户关联的信息。
编辑:
使用 OpenSSL 发布客户端证书的超短版本。
openssl genrsa -des3 -out my_ca.key 4096openssl req -new -key my_ca.key -out my_ca.csropenssl x509 -req -days 365 -in my_ca.csr -signkey my_ca.key -out my_ca.crtopenssl genrsa -des3 -out client1.key 1024openssl req -new -key client1.key -out client1.csr编辑您的 openssl.cnf 文件并填写相关的 CA 部分。他们是:
[ ca ]
default_ca = CA_default # The default ca section
[ CA_default ]
dir = ./ # top dir
database = $dir/my_ca.index # index file.
new_certs_dir = $dir/newcerts # new certs dir
certificate = $dir/my_ca.crt # The CA cert
serial = $dir/my_ca.srl # serial no file
private_key = $dir/my_ca.key # CA private key
RANDFILE = $dir/rand # random number file
default_days = 365 # how long to certify for
default_crl_days= 30 # how long before next CRL
default_md = md5 # md to use
policy = policy_any # default policy
email_in_dn = no # Don't add the email into cert DN
name_opt = ca_default # Subject name display option
cert_opt = ca_default # Certificate display option
copy_extensions = none # Don't copy extensions from request
[ policy_any ]
countryName = supplied
stateOrProvinceName = optional
organizationName = optional
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
Run Code Online (Sandbox Code Playgroud)使用 CA 证书对密钥进行签名
openssl ca -in client1.csr -out client1.crt
openssl pkcs12 -export -in client1.crt -inkey client1.key -out client1.p12请注意,这是颁发签名证书的一种糟糕方式,因为它只是授予 CSR 指定的任何类型的证书。一定要注意你在做什么。如果您要颁发大量证书,则需要花一些时间进行更安全的设置。
| 归档时间: |
|
| 查看次数: |
3088 次 |
| 最近记录: |