Skip to the content.

Ssl_with_sm_and_rsa

18 Mar 2024 - joy717

背景

有国密需求的场景,可能需要https的ssl证书使用sm2等国密加密算法。

问题

基于国密的ssl,只能使用支持国密ssl的浏览器访问,如果使用chrome等不支持国密算法,而是支持RSA、ECC等算法的国际浏览器(客户端),那么网站的https会无法访问。 由于引申出一个需求:一个网站同时支持多种ssl证书对应到一个host。

解决方案

参考:https://www.wosign.com/Docdownload/sm2_ssl_installation_guide-linux.pdf

或者:https://cloud.tencent.com/document/product/400/47360

原理

本质上,使用改造后的openssl(wotrus),支持ssl有多个证书。

怀疑,类似SNI(https://zh.wikipedia.org/wiki/%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%90%8D%E7%A7%B0%E6%8C%87%E7%A4%BA)

即在握手时,告诉服务端,自己使用什么加密方式的证书、域名等。(只是猜测)

其他

阿里有自己开源了一个ssl: 铜锁

暂时可作为openssl的上位替代品