使用node.js和letsencrypt.org证书
[Error: unable to get issuer certificate] code: 'UNABLE_TO_GET_ISSUER_CERT'
我尝试连接的第二台服务器与其自己的证书和代码具有完全相同的设置
当我尝试连接服务器到服务器时它只是var test=require('fs').readFileSync('/etc/letsencrypt/lets-encrypt-x3-cross-signed.pem','utf8');
console.dir(test);//I see the pem!!!
我可以测试每个可以访问它的文件:
hardhttps.globalAgent.options.ca=require(__dirname+'/../node_modules/ssl-root-cas/latest').inject().addFile('/etc/letsencrypt/lets-encrypt-x3-cross-signed.pem');
可能是这一行,因为如果我将其删除,那么我会得到同样的错误:
try {
$foo = 1;
} catch (\Exception $ex) {
$mail = new Mail();
$mail->sendMail();
return new Response();
}
我已将其与此相关联,因为毫无疑问其他人可能需要解决方案https://community.letsencrypt.org/t/error-unable-to-get-issuer-certificate-code-unable-to-get-issuer-cert/15342/3
答案 0 :(得分:0)
benzmuircroft:
pem:{
key:require('fs').readFileSync('/etc/letsencrypt/live/mysite.com/privkey.pem','utf8')
, cert:require('fs').readFileSync('/etc/letsencrypt/live/mysite.com/fullchain.pem','utf8')//was chain.pen
, ca:require('fs').readFileSync('/etc/letsencrypt/lets-encrypt-x3-cross-signed.pem','utf8')
, pass:'xxxxxxxxxxx'
}
var ws=new require('ws')('wss://mysite:8004',{key:pem.key,cert:pem.cert,ca:[pem.ca],passphrase:pem.pass,requestCert:true});
没有必要设置任何一个。服务器2只是一个请求服务器1的TLS客户端,它不需要服务器的密钥或证书文件。你可能只想要:
var ws=new require('ws')('wss://mysite1:8004');
不确定是否是修复 - 试一试。
<强>固定!强>
连接到侦听服务器的服务器不需要发送pem内容,但是监听服务器确实需要pem可用。