我需要知道如何在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
});
我需要知道的是
答案 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,必须提供。