首先要在你的系统上有openssl, 这里略过安装openssl
1 | # 1. 生成服务端证书的RSA私钥 |
将生成的证书签名请求qrimtls.csr
文件发送给瓜瓜, 然后瓜瓜会给你一个签名证书qrimtls.crt
文件, 之后执行下面的命令生成给操作系统安装的p12文件:
1 | # 改下后面的name |
然后将生成的p12安装至系统证书就可以了
-legacy的说明
这里-legacy的原因是, 打包p12其实是把私钥打包进p12文件了, 所以需要用一个密码和算法来保护p12里的私钥. openssl认为一些算法已经不安全了, 不适合用来打包p12, 但是操作系统还在用, 操作系统不支持新的算法, 所以要用-legacy
使用旧版的加密算法来兼容操作系统这里只是p12打包算法是旧的, 并不影响秘钥本身的安全性, 只要不把p12到处传播就行
macos的话 详见这里:
https://docs.strongswan.org/docs/5.9/interop/appleIkev2Profile.html#_known_issues
windows和安卓的话, 详见这里:
https://docs.strongswan.org/docs/5.9/pki/pkiQuickstart.html#_pkcs12_container
关于安全性
这个秘钥由客户端生成, 并没有安装瓜瓜的ca证书, 所以就算是瓜瓜真的成为了你的网络中间人, 也不可能解密你的其他https的流量
扩展: 浏览器自动选择证书
在使用浏览器访问需要mtls的链接时, 比如访问https://kuma.qri.blue:58888/, 浏览器会让你手动选取一个安装在系统上的客户端证书
这个手动选择证书的动作可以改为自动选取, 依靠这个Chrome Policy
在macos上, 你可以执行这样的命令 来设置访问瓜瓜服务的默认证书:
1 | defaults write com.google.Chrome AutoSelectCertificateForUrls -array |