1. 引言
刚入Quna****,最常困扰的问题就是HTTP****本地调试的浏览器信任问题,Faile**** to load resour****: net::ERR_IN****, 同样有同学有类似的问题,知乎地址 http****://www.zh****/questi****/282480****/answe****/632303**** ,看到这张图是不是很熟悉?
>>>点击查看业务详细介绍合作咨询>>>恰巧我碰上并顺路回答,但后面发现答案也不完全对。我们会不断地进行浏览器的信任(烦-透-人),单单这一个问题,单单在知乎上的浏览量已经是1200****+,问题比较普遍,尤其是对于咱们的小驼们来说;那么到底有没有一劳永逸的办法呢?是有的,本文只是一个实际案例,其他任何类似的问题都可以通过修改自签名证书生成命令中相应的参数得到解决。
2. 解决过程
生成自签名证书
将自签名证书添加到浏览器信任
使用新的证书启动feki**** 或者 ykit 本地 serve****
2.1 OpenSS**** 介绍
1.Open****是一个开源项目
2.Open****是一个健壮的、商业级别的、全功能的针对TLS(Transp**** Laye**** Securi****)和SSL(Secur**** Socket**** Laye****)的工具集
3.Open****也是一个通用的密码学的类库,实现了各种加解密算法
2.2 生成自签名证书
生成自签名证书的过程比正式的签发证书过程要简单,因为证书请求和证书签发者是同一个(这才叫自签名),所以这个生成证书请求文件和签发的过程可以一步到位,-x50****这个选项就是干这事的。
2.3 生成简单单个主域的自签名证书
出现上述浏览器信任问题的根源是Wiki中的解决办法给的证书基本已经过期,浏览器不再信任,当然最直接的解决办法就是重新搞一个有效的证书。 安装openss****的过程就不用铝耍来沃葱腥缦旅钌芍な椋
- 生成一个以des3加密的,..位强度的RSA秘钥,需要设密码,可输入 test,参考 genrs****(http****://www.op****/docs/manmas****/man1/genrsa****)
openss**** genrs**** -des**** -
outtes****
..
- 去掉上面生成的私钥的密码,我们不需要密码,参考 rsa(http****://www.op****/docs/manmas****/man1/rsa.ht****)
openss**** rsa -
intest**** -
outtes****
- 使用上面的密钥,生成十年有效期的自签名证书,参考 req (http****://www.op****/docs/manmas****/man1/req.ht****)

openss**** req -
new-x5**** -day****
..-ke**** test.k**** -
outtes****
最后一条命令依次填入的信息如下:
CN
beijin****
beijin****
quna****
duji****
* .qunar****
test@ qunar**** com2.**** 生成带 Subjec**** 扩展的证书
上面的证书在一段时间是有效的,但随着Chrom****浏览器的升级,这个证书也不好使了。上面的浏览器信任问题再次出现,但这次的提示信息不一样了,missin****。 继续解决这个问题,重新生成带 Subjec**** 扩展的证书。
- 生成一个..位强度的RSA秘钥,需要设密码,可输入 test,参考 genrs****(http****://www.op****/docs/manmas****/man1/genrsa****)
openss**** genrs**** -des**** -
outqun****
..
- 去掉上面生成的私钥的密码,我们不需要密码,参考 rsa(http****://www.op****/docs/manmas****/man1/rsa.ht****)
openss**** rsa -
inquna**** -
outqun****
- 使用上面的密钥,生成带有SAN(Subjec**** Alt Name)(http****://www.op****/docs/man1.0****/apps/x509v3****)的自签名证书,参考 req(http****://www.op****/docs/manmas****/man1/req.ht****)
- 需要全局找一份openss**** ,或者下载一份openss**** 那里有。这里通过一条命令填入相关的参数信息,如果有其他需求,可以修改这里面的数据。
-sub****参数自动填入相关的组织信息,不用再交互了
-confi**** 配合Shel****命令,自动填入扩展字段内容,并提供给-exten****选项
openss**** req -
new-sh**** -x50**** -day****
10000-**** qunarz**** -sub****
"/C=CN/ST=BeiJin****/L=Beijin****/O=QUNA****/OU=FE/CN=qunarz****"-exten**** SAN -confi**** <(cat ./openss**** <(
print****
"[SAN]nsubje****=DNS.****:qunarz****,DNS.****:q.quna****,DNS.****:*.qunar****")) -out qunarz****
2.5 添加证书信任
打开Mac的钥匙串访问App,通过文件->导入项目,导入上面的证书,并在证书属性里面选择始终信任即可
2.6 启动Server**** serve**** -s/path/to/crtyki**** serve**** -s/path/to/crt 3. 扩展总结
咱们现有的业务都是feki****和 ykit共存的状态,同时feki****的项目也比ykit的项目多,同一个页面比如度假首页本地调试也需要同时启动feki****和ykit相关的工程,这里一个更好的方式是本地安装一个ngin****,同时反向代理本地的feki**** serve****和ykit serve****,并将证书配置到ngin****上面,整个世界也就安静下来了。
4. 参考资料
《OpenSS****与网络信息安全-基础、结构和指令》
《OpenSS****攻略》
《OpenSS****编程》
OpenSS****官网( http****://www.op****/ )
OpenSS****命令手册(http****://www.op****/docs/manmas****/man1/openss****)
