在MQTT中使用AWS CA路径证书

时间:2019-01-03 20:13:42

标签: node.js amazon-web-services ssl mqtt

我需要知道如何在node.js ssl选项中指定aws证书管理器中存在的证书。我需要在实施mqtt时使用该证书。

目前,我已经创建了自签名证书,但是该证书给出了错误

Error: self signed certificates

一旦我将rejectUnauthorized选项设置为false,它就可以工作,但是如果为true,它会引发错误。

mqtt.connect('mqtts://domainname.com', {
                    clientId: clientId,
                    connectTimeout: config.connectTimeout,
                    rejectUnauthorized: false,
                    key: KEY,
                    cert: CERT,
                    ca: TRUSTED_CA
          });

我需要知道的是

  1. rejectUnauthorized是消除错误的唯一方法:自签名证书吗?
  2. 我们如何才能在上述选项中使用aws证书管理器证书(作为常用功能)?

2 个答案:

答案 0 :(得分:0)

您不能在自己的服务器上使用来自AWS Certificate Manager(ACM)的SSL证书。您只能将托管证书与与ACM集成的受支持的AWS托管服务一起使用。受支持的服务包括Elastic Load Balancer,CloudFront和API Gateway。

AWS还提供另一项服务,即AWS Certicate Manager私有证书颁发机构。您可以使用此服务创建和管理自己的证书。您需要支付月费(目前为400.00美元)和每张证书费用(0.75美元)。

答案 1 :(得分:0)

  

rejectUnauthorized是消除错误的唯一方法:自签名证书吗?

如果您想消除错误,则可以让证书由受信任的CA签名(可以通过Let's Encrypt进行)。

或者,如果您只是需要出于测试目的而删除错误,则可以设置“ ca”参数以匹配自签名证书。记录在https://nodejs.org/api/tls.html#tls_tls_createsecurecontext_options

  

对等方的证书必须可链接到服务器信任的CA,以便对连接进行身份验证。当使用不可链接到知名CA的证书时,必须将证书的CA显式指定为受信任的证书,否则连接将无法通过身份验证。如果对等方使用与默认CA之一不匹配或不链接的证书,请使用ca选项提供对等方证书可以与之匹配或链接的CA证书。 对于自签名证书,该证书是其自己的CA,必须提供。