首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通配符/jboss (WildFly Core17.0.3)--用名为GMTLSv1的GM协议完成手滑故障

通配符/jboss (WildFly Core17.0.3)--用名为GMTLSv1的GM协议完成手滑故障
EN

Stack Overflow用户
提问于 2022-10-08 13:12:59
回答 1查看 65关注 0票数 0

我面临一个问题,我想用GMTSL协议来配置ssl,我用TLSV1.2成功地配置了ssl。

wireshark的节目是这样的

TLSV1.2

GMTLSV1

对于Wildfly/Jboss可以建立GMTLS ssl连接,我已经完成了

  1. 在standalone.xml中添加一些属性
代码语言:javascript
复制
<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"/>
  1. 让通配符源代码支持GMSSLV1.1协议

在类SSLDefinitions ALLOWED_PROTOCOLS中添加字符串"GMSSLv1.1“,第231行

代码语言:javascript
复制
private static final String[] ALLOWED_PROTOCOLS = { "SSLv2", "SSLv2Hello", "SSLv3", "TLSv1", "TLSv1.1", "TLSv1.2", "TLSv1.3" , "GMSSLv1.1" };

在枚举类协议中添加一个常量行15

代码语言:javascript
复制
  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捕获包,它显示握手失败。我不知道是怎么回事!

EN

Stack Overflow用户

回答已采纳

发布于 2022-10-09 02:34:11

我已经解决了这个问题。

核心问题是握手失败。

要构建SSL通道,我们需要一个密钥存储库和一个GMSSL类型的SSLContext。然后我们需要进行握手,但它失败了。这个问题发生在密室里。在WildFly Core17.0.3中,默认的加密套件是TLS1.3,但我需要的是GMTSL。所以我需要增加我自己的密室。

  1. 在TLS13MechanismDatabase.properties中添加密件
代码语言:javascript
复制
ECC_SM4_CBC_SM3 = ECC_SM4_CBC_SM3,ANY,ANY,AES128CCM8,AEAD,TLSv1.3,false,HIGH,false,128,128,13,05
  1. 编辑standalone.xml:添加密码套件名称
代码语言:javascript
复制
<server-ssl-context name="customSSC" key-manager="customKM" provider-name="GMJSSE" protocols="GMSSLv1.1" cipher-suite-names="ECC_SM4_CBC_SM3"/>

运行服务器

Wireshark产出:

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73997261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档