我面临一个问题,我想用GMTSL协议来配置ssl,我用TLSV1.2成功地配置了ssl。
wireshark的节目是这样的
对于Wildfly/Jboss可以建立GMTLS ssl连接,我已经完成了
<tls>
<key-stores>
<key-store name="customKS">
<credential-reference clear-text="password"/>
<implementation type="PKCS12"/>
<file path="sm2.localhost.both.pfx" relative-to="jboss.server.config.dir"/>
</key-store>
</key-stores>
<key-managers>
<key-manager name="customKM" key-store="customKS" provider-name="GMJCE" algorithm="SunX509">
<credential-reference clear-text="passowrd"/>
</key-manager>
</key-managers>
<server-ssl-context name="customSSC" key-manager="customKM" provider-name="GMJSSE" protocols="GMSSLv1.1" />
</server-ssl-contexts>
</tls>
...
<https-listener name="https" socket-binding="https" ssl-context="customSSC" enable-http2="true"/>在类SSLDefinitions ALLOWED_PROTOCOLS中添加字符串"GMSSLv1.1“,第231行
private static final String[] ALLOWED_PROTOCOLS = { "SSLv2", "SSLv2Hello", "SSLv3", "TLSv1", "TLSv1.1", "TLSv1.2", "TLSv1.3" , "GMSSLv1.1" };在枚举类协议中添加一个常量行15
SSLv2("SSLV2"),
SSLv3("SSLV3"),
TLSv1("TLSV1"),
TLSv1_1("TLSV1.1"),
TLSv1_2("TLSV1.2"),
TLSv1_3("TLSV1.3"),
GMSSLv1_1("GMSSLV1.1"),
SSLv2Hello("SSLV2HELLO");当我完成以上工作时,服务器就正常启动了。http uri访问成功,但https uri无法到达,我使用wireshark捕获包,它显示握手失败。我不知道是怎么回事!
发布于 2022-10-09 02:34:11
我已经解决了这个问题。
核心问题是握手失败。
要构建SSL通道,我们需要一个密钥存储库和一个GMSSL类型的SSLContext。然后我们需要进行握手,但它失败了。这个问题发生在密室里。在WildFly Core17.0.3中,默认的加密套件是TLS1.3,但我需要的是GMTSL。所以我需要增加我自己的密室。
ECC_SM4_CBC_SM3 = ECC_SM4_CBC_SM3,ANY,ANY,AES128CCM8,AEAD,TLSv1.3,false,HIGH,false,128,128,13,05<server-ssl-context name="customSSC" key-manager="customKM" provider-name="GMJSSE" protocols="GMSSLv1.1" cipher-suite-names="ECC_SM4_CBC_SM3"/>运行服务器
Wireshark产出:

https://stackoverflow.com/questions/73997261
复制相似问题