NetCoreWebapi双向SSL自建证书演示程序
首先安装证书生成工具 OpenSSL 自行安装
一、创建根证书
- 生成key文件,输入密码:
openssl genrsa -des3 -out root.key
- 生成请求证书文件,如果安装路径发生改变,可以通过在下面命令后面添加-config openssl.cfg来指明配置文件路径
openssl req -new -key root.key -out root.csr
- 生成一个10年期根证书 root.crt:
openssl x509 -req -days 3650 -sha1 -extensions v3_ca -signkey root.key -in root.csr -out root.crt
分别在客户端或服务端安装根证书,windows上安装证书时,证书存储可选择“受信任的根证书颁发机构”
根证书的发行者:Common Name 不能跟服务端证书相同,此处案例用的:testssl.com,其余随便写
二、创建服务端证书
- 生成key文件,输入密码
openssl genrsa -des3 -out server.key 2048
- 生成请求证书文件,如果安装路径发生改变
openssl req -new -key server.key -out server.csr
- 用根证书生成一个10年期证书 server.crt:
openssl x509 -req -days 3650 -sha1 -extensions v3_req -CA root.crt -CAkey root.key -CAserial root.srl -CAcreateserial -in server.csr -out server.crt
- 生成.net core识别的证书文件server.pfx
openssl pkcs12 -export -in server.crt -inkey server.key -out server.pfx
服务端签发域名:Common Name 不能跟服务端证书相同,此处案例用的:api.testssl.com,其余随便写 同客户端证书
三、创建客户端证书
- 生成key文件,输入密码
openssl genrsa -des3 -out client.key 2048
- 生成请求证书文件,如果安装路径发生改变
openssl req -new -key client.key -out client.csr
- 用根证书生成一个10年期证书 client.crt:
openssl x509 -req -days 3650 -sha1 -extensions v3_req -CA root.crt -CAkey root.key -CAserial root.srl -CAcreateserial -in client.csr -out client.crt
- 生成.net core识别的证书文件client.pfx
openssl pkcs12 -export -in client.crt -inkey client.key -out client.pfx
四、创建服务端
见附件SSLClientValidationDemo
重点代码:
本机配置内网域名映射:C:\Windows\System32\drivers\etc\host文件 添加 127.0.0.1 api.testssl.com
启动服务端访问域名:https://api.testssl.com/home/index 此时浏览器强制要求客户端设置证书,无法访问接口
四、创建测试程序 见附件:SSLClientValidationClientDemo
客户端配置客户端证书,同时对服务端证书进行验证,接口可以调通