使用Https服务
如果想要在本章节里的启用Https
还是有点麻烦的,如果不怕麻烦,可以参考本文下面的内容,部分内容参考网址:
https://blog.csdn.net/shijinglin/article/details/100568360
本文在之上进行了二次加工处理。
安装OpenSSL
网址:https://slproweb.com/products/Win32OpenSSL.html ,登录就可以看到下载地址了,或是直接点击这个连接下载: https://slproweb.com/download/Win64OpenSSL_Light-3_3_1.msi 下载完成之后,双击安装,记住安装的路径就可以了,这么就不进行过多的说明了。
生成证书
接下来要做一个非常重要的步骤,就是生成证书,所以先执行管理员CMD,然后执行下面的命令来找到正确的路径
cd /d C:\Program Files\OpenSSL-Win64\bin创建CA私钥
openssl genrsa -des3 -out D:\cert\ca.key 4096输入CA密码,两次后,然后生成CA的自签名证书 (其实CA证书就是一个自签名证书) 期中 -days 为证书有效期(单位:天)
openssl req -new -x509 -days 36500 -key D:\cert\ca.key -out D:\Cert\ca.crt输入上面设置的CA密码,然后提示让你输入下面的信息:
Country Name (2 letter code) [AU]: CN --国家
State or Province Name (full name) [Some-State]: CN --地区
Locality Name (eg, city) []: CH --城市
Organization Name (eg, company) [Internet Widgits Pty Ltd]: 公司名称
Organizational Unit Name (eg, section) []: 部门名称
Common Name (e.g. server FQDN or YOUR name) []: 域名/IP (应该是服务器的证书所在电脑的ip地址,这里我输入了127.0.0.1)
Email Address []: (你的email地址)
生成客户端证书私钥
openssl genrsa -des3 -out D:\Cert\localhost.key 4096需要签名的对象(服务端)生成证书签名请求
openssl req -new -key D:\Cert\localhost.key -out D:\Cert\localhost.csr输入上面设置的客户端密码,然后提示让你输入下面的信息: (这里注意证书签名请求当中的Common Name很关键,必须是url中的ip地址/或域名)
Country Name (2 letter code) [AU]: CN
State or Province Name (full name) [Some-State]: CN
Locality Name (eg, city) []: CN
Organization Name (eg, company) [Internet Widgits Pty Ltd]:xxx --组织名称
Organizational Unit Name (eg, section) []:xxx --单位、部门,可同组织名称
Common Name (e.g. server FQDN or YOUR name) []:localhost --很关键,必须是url中的ip地址/或域名 这里我输入的127.0.0.1
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request -- 一些额外的信息
A challenge password []: xxx --证书交换密码(可省略)
An optional company name []:xx --公司名称(可省略)
用之前创建的CA证书给步骤4.4生成的签名请求进行签名
openssl x509 -req -days 365 -in D:\Cert\localhost.csr -CA D:\Cert\ca.crt -CAkey D:\Cert\ca.key -set_serial 01 -out D:\Cert\localhost.crt根据提示输入 CA 密码,期中 -days 为证书有效期(单位:天),然后进行合成pfx操作,注意,执行下面的命令后,先输入客户端密码,然后输入两次pfx密钥
openssl pkcs12 -export -out D:\Cert\localhost.pfx -inkey D:\Cert\localhost.key -in D:\Cert\localhost.crt安装证书

然后选择当前用户,然后一直下一步,直到提示输入密钥,就是 pfx 文件生成时让输入的密钥,就是下图

然后就是一路点击下一步,安装完成后,我们还需要拿到一个指纹数据,如下图:

然后我们还需要拿到一个我们C#程序的GUID信息,例如此处是:

信息都拿到了,然后去执行端口绑定命令,另起一个管理员CMD界面,执行下面的命令,这个port就是我们等会要用的端口12345, certhash就是指纹,appid 就是GUID
netsh http add sslcert ipport=0.0.0.0:12345 certhash=dec44fd70633146ce3f0e0f4b91d42d491f9bf8b appid={3878075b-b8d7-4090-b094-29622581442f} clientcertnegotiation=enable

启动DEMO程序
准备工作终于全部做完了,现在可以打开demo程序了

然后我们就算用真正的浏览器去打开地址看看,也是可以的了

这时候就算我们用demo自身的客户端去测试也是可以的
