1.首先安装Openssl和Msquic
Windows下安装Openssl地址:1.可以去github官网下载源代码进行编译 不过我并不推荐新手去进行这种事情 2.去别人整理好的网站直接下载编译好的openssl版本网址如下:
Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions
选择我圈起来的版本
安装好了之后 进入他的bin文件夹 然后把里面的东西全部放入环境变量里 方便日后使用(不放当然也行啦 只不过用起来贼麻烦)
这些东西全部放到
C:\Windows\
然后选择一个你拥有权限的文件夹,比如C:\CA(文件夹名字任意不用管) 打开powershell 然后依次输入以下命令
1.openssl ecparam -out contoso.key -name prime256v1 -genkey 创建CA私钥
2.openssl req -new -sha256 -key contoso.key -out contoso.csr 创建CA证书申请
这一步会让你填入一些基本信息 然后注意其他都可以随便填 但是 Common Name一定要填写域名 这是CA的域名 CA域名可别和你服务器的域名冲突了 CA的域名我接下来使用的是www.dingzi1.com记住
3.openssl x509 -req -sha256 -days 365 -in contoso.csr -signkey contoso.key -out contoso.crt 生成CA根证书
4.openssl ecparam -out fabrikam.key -name prime256v1 -genkey 创建服务器私钥
5.openssl req -new -sha256 -key fabrikam.key -out fabrikam.csr 创建服务器的安全证书申请
这一步你填写的域名必须要记住 必须要填 比如我接下来使用的是www.dingzi.com(你也可以填写你自己的域名)等会hosts文件是需要这个东西的 必须要记住必须要填
6.openssl x509 -req -in fabrikam.csr -CA contoso.crt -CAkey contoso.key -CAcreateserial -out fabrikam.crt -days 365 -sha256 生成服务器安全证书
7.验证你的文件夹里的文件 如果不出意外应该有如下6个文件
8.点击contoso.crt
记住 必须是受信任的根证书颁发机构
9.检查fabrikam.crt是否可用 如果不可用 那么请重新检查你是否有任何一个步骤出问题了
可用情况如下:
10.修改系统hosts文件 更改DNS域名解析的规则 以windows10及以上版本为例 路径如下:
C:\Windows\System32\drivers\etc
修改
文件
加上你刚刚写的域名到本地环回地址的映射(当然你想咋改就咋改 只是我在本机测试 那么域名映射就是127.0.0.1) www.dingzi.com 映射到127.0.0.1
然后现在所有都配置好了 可以直接使用自签名证书来进行通信了
接下来去github官网按照他的提示去安装msquic
Msquic就不用多说了吧直接去github官网看如何编译和运行 记得一定是编译openssl的版本而不是使用微软那一套加密的东西 本文以微软官网的例子为例 这里就不进行安装msquic的教学了 官网都写的非常明白了
编译完成后 服务器参数: -server -cert_file:fabrikam.crt -key_file:fabrikam.key
你自己放的路径肯定要加上去涩这是最基本的常识
客户端参数为:-client -target:www.dingzi.com
运行结果如下
客户端:
服务器:
至此 我们完成了自签名证书的认证
什么! 你问我为什么不去权威的CA买一个证书而是使用自签名证书? 第一自己测试使用的时候不想花钱 第二有些时候你并不想让公网的用户连到你服务器 而是自己内部的私网使用quic 也是不需要CA的安全证书的