通过交叉开关WAMP路由器使用Lets Encrypt SSL证书(0.13)

时间:2018-11-27 11:04:46

标签: android websocket lets-encrypt crossbar wamp-protocol

已从Let's Encrypt生成了证书,并将其安装到现有的(正在运行的)纵横制服务器中,如下所示(并称为the documentation suggests):

"endpoint": {
    "type": "tcp",
    "port": 8089,
    "tls": {
      "key": "../ssl/key.pem",
      "certificate": "../ssl/cert.pem"
    }
  },

通过Java连接时(如果其他API用不同的措词,我肯定结果会是相似的),结果是:

  

java.security.cert.CertPathValidatorException:找不到证书路径的信任锚

已经确定这可能是由于要求Let's Encrypt's intermediate certificate如此链接所致:

"endpoint": {
    "type": "tcp",
    "port": 8089,
    "tls": {
      "key": "../ssl/key.pem",
      "certificate": "../ssl/cert.pem",
      "ca_certificates": [
           "../ssl/intermediate.cert.pem"
       ],
    }
  },

不幸的是,这也不起作用,导致握手错误(我没有记下确切的措辞)。

1 个答案:

答案 0 :(得分:0)

深入研究我发现的文档this example明确引用了let加密中间件,但关键参数的名称不同:

"chain_certificates": [
     "lets-encrypt-x3-cross-signed.pem"
],

尝试此操作会导致相同的问题(握手失败)

然后我尝试了以下操作:

  • 使用“让我们加密”中间件连接证书文件
  • 仅使用证书和关键参数即可恢复到初始配置

基本上就是这样:

  "tls": {
      "key": "../ssl/key.pem",
      "certificate": "../ssl/cert-plus-intermediate.pem"
    }

再次重新启动服务器后(每次更改SSL设置都需要重新启动),连接已正确建立。还请注意,一旦配置工作正常,就应确保密钥文件只能由系统上的受信任用户读取,理想情况下,只有以(chmod 600 key.pem身份运行的用户交叉开关