收藏
回答

微信小程序国密ssl证书无法播放语音的问题?

使用国际的ssl证书,小程序的语音播放正常。但是,使用了国密证书以后,小程序的语音不播放。图片和文字的加载都正常,就语音不能播放。目前暂时没有使用国密证书,但是按项目要求是得上国密证书的。

语音播放的代码是正常的语音播放代码,没有做特殊处理。语音链接是同一个链接。

业务系统相关报错信息如下:

1,小程序的报错

2,服务器上的报错

2024/11/27 17:29:54 [info] 4113923#0: *2036 SSL_do_handshake() failed (SSL: error:14094417:SSL routines:ssl3_read_bytes:sslv3 alert illegal parameter:SSL alert number 47) while SSL handshaking, client: 60.26.180.137, server: 0.0.0.0:443

2024/11/27 17:29:54 [info] 4113923#0: *2037 SSL_do_handshake() failed (SSL: error:14094417:SSL routines:ssl3_read_bytes:sslv3 alert illegal parameter:SSL alert number 47) while SSL handshaking, client: 60.26.180.137, server: 0.0.0.0:443

3,国密证书相关信息如下

证书配置代码如下,项目中的真实域名已经用(主域名)进行替换

    #国密SM2签名证书

    ssl_certificate       /data/nginx/conf/servers/cert/_.(主域名)_sign_chain.crt;

    ssl_certificate_key   /data/nginx/conf/servers/cert/(主域名).key;


    #国密SM2加密证书

    ssl_certificate       /data/nginx/conf/servers/cert/_.(主域名)_encrypt_chain.crt;

    ssl_certificate_key   /data/nginx/conf/servers/cert/(主域名).key;

    

    #先配置签名证书,再配置加密证书

    ssl_session_timeout 5m;

    ssl_ciphers SM2-WITH-SMS4-SM3:ECDH:AESGCM:HIGH:MEDIUM:!RC4:!DH:!MD5:!aNULL:!eNULL; //  这条就是支持的加密算法

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

    ssl_prefer_server_ciphers on;

nginx已经编译了支持国密gmssl模块。

麻烦判断一下是什么原因导致的,该怎么解决,谢谢!

回答关注问题邀请回答
收藏

1 个回答

  • 风清雾散云开见日出
    风清雾散云开见日出
    11-29

    自己校验下你的国密ssl证书就知道了:https://myssl.com/ssl.html

    11-29
    有用
    回复 4
    • 牛🐮
      牛🐮
      11-29
      谢谢,我试一下看看。
      11-29
      回复
    • 牛🐮
      牛🐮
      12-03
      证书检测工具检测证书在几个国产的浏览器上正常,没有检测移动端。国际证书是会检测移动端的。现在想在真机上抓一下返回的包,也不知道怎么抓呢。微信直接打开国密的证书的语音链接,就可以播放;但是使用接口返回的,安卓不能播放,老版本的iOS上的微信就是可以播放的,怀疑返回的播放链接可能跟浏览器返回的不一样。但是又没有什么证据。
      12-03
      回复
    • 风清雾散云开见日出
      风清雾散云开见日出
      12-03回复牛🐮
      浏览器不校验你的ssl证书的,就算过期或者http都可以访问,但是微信会校验ssl证书且校验证书链是否完整等。
      12-03
      回复
    • 牛🐮
      牛🐮
      12-10
      已经正常了,是国密证书那边的做技术的半瓶水,少给了国密GDCA模块的插件导致的。
      12-10
      回复
登录 后发表内容