nodejs版本:0.8.6
@H_502_2@我使用openssl使用以下命令创建了一个ssl csr文件:
@H_502_2@openssl req -nodes -newkey rsa:2048 -keyout myserver.key -out myserver.csr
> csr内容已发送到我的SSL提供商,证书已发回.
现在我想创建一个SSL安全服务器:
var fs = require("fs"); var https = require('https'); var credentials = { key: fs.readFileSync(options.base_project_folder + 'privatekey.pem'),cert: fs.readFileSync(options.base_project_folder + 'certificate.pem') }; var server = https.createServer(credentials,app); server.listen(port,address,function() { var addr = this.address(); console.log('listening on %s:%d',addr.address,addr.port); });
服务器正在运行,但我得到:“SSL连接错误”
试图检查我做的问题:@H_502_2@openssl s_client -connect my_dns:443 // my_dns指向我的nodejs服务器
结果:@H_502_2@连(00000003)@H_502_2@139813382997664:错误:140790E5:SSL例程:SSL23_WRITE:ssl握手失败:s23_lib.c:177:@H_502_2@没有可用的对等证书@H_502_2@没有发送客户端证书CA名称@H_502_2@SSL握手读取0个字节并写入226个字节@H_502_2@新的,(无),密码是(无)@H_502_2@不支持安全重新协商@H_502_2@压缩:无@H_502_2@扩展:无
谁能帮我 ?我在SSL黑暗中迷失了方向:(
解决方法
尝试添加CA,如下所示:
var credentials = { key: fs.readFileSync(options.base_project_folder + 'privatekey.pem'),cert: fs.readFileSync(options.base_project_folder + 'certificate.pem'),ca: fs.readFileSync(/path/to/CA/cert) };
The docs say,options参数类似于tls.createServer