我遇到了一個問題,我想用 GMTSL 協議配置 ssl,我用 TLSV1.2 成功配置了 ssl。
像這樣的wireshark節目
TLSV1.2
GMTLSV1
對于 Wildfly/Jboss 可以建立 GMTLS ssl 連接,我已經完成了
- 在standalone.xml 中添加一些屬性
<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"/>
- 讓wildfly原始碼支持GMSSLV1.1協議
在類 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捕獲包它顯示握手失敗。我不知道發生了什么錯誤!
uj5u.com熱心網友回復:
我已經解決了這個問題。
這個核心問題是握手失敗。
要構建 ssl 通道,我們需要一個密鑰庫和一個 GMSSL 型別的 SSLContext。然后握手,但握手失敗,所以問題發生在密碼套件中。在 WildFly 核心 17.0.3。最終默認密碼套件用于 TLS1.3,但我需要的是 GMTSL,所以我需要添加自己的芯片套件。
- 在 TLS13MechanismDatabase.properties 中添加芯片套件
ECC_SM4_CBC_SM3 = ECC_SM4_CBC_SM3,ANY,ANY,AES128CCM8,AEAD,TLSv1.3,false,HIGH,false,128,128,13,05
- 編輯standalone.xml
添加密碼套件名稱
<server-ssl-context name="customSSC" key-manager="customKM" provider-name="GMJSSE" protocols="GMSSLv1.1" cipher-suite-names="ECC_SM4_CBC_SM3"/>
運行服務器
wireshark 顯示 GMSSL 握手成功
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/514018.html
標籤:爪哇ssl老板野蝇握手
上一篇:為什么我需要單獨的SSL證書和SXG證書來為我的網站啟用SignedExchange?
下一篇:如何對影像邊界值進行雙線性插值?
