如何配置在Windows上运行的node.js以使用具有多个域名的多个SSL
我已经阅读了这个问题并回答:“
Is it Possible to Dynamically Return an SSL Certificate in NodeJS?“…但它使用域和服务器的.key和.crt文件. 在Windows 2008 R2计算机上,我找不到domain1.key,server.key和server.crt文件.相反,我通过从IIS导出SSL证书创建了domain1.pfx文件. 我能够成功运行一个https node.js服务器,使用这个一个PFX文件和一个域,如下所示: var fs = require('fs'); var https = require('https'); var crypto = require('crypto'); function getSecureContext(domain) { return crypto.createCredentials({ pfx: fs.readFileSync('/path/to/' + domain + '.pfx'),passphrase: 'passphrase' }).context } var secureContext = { 'domain1': getSecureContext('domain1') } var options = { SNICallback: function (domain) { return (secureContext.hasOwnProperty(domain) ? secureContext[domain] : {}); },pfx: fs.readFileSync('/path/to/domain1.pfx'); // for the server certificate }; var server = https.createServer( options,requestListener).listen(443); 但是,如果我有一个多域证书加上单个域的另一个证书,那么如何配置SNICallback和getSecureContext函数以使每个域名使用正确的证书? 我认为两个PFX文件的服务器证书应该是相同的,因为它们在同一台服务器上,所以我只使用第一个PFX文件(对于domain1)作为服务器证书. 我试过像这样更改secureContext对象: var secureContext = { 'domain1': getSecureContext('domain1'),'domain2': getSecureContext('domain2'),. . } 这给了我错误“听EACCES”. 在我的具体情况下,我有两个SSL证书.一个是一个域名的扩展验证证书,第二个是支持五个域名的多域证书. 我发现调试EACCES错误非常困难.关于导致EACCES的原因似乎没有更详细的说明.我的配置错了,证书有问题吗?我知道当我在同一台Windows 2008 R2服务器上运行IIS服务器(而不是node.js服务器)的IIS中使用它们时,这些证书可以正常工作. 我想继续使用纯Windows和node.js配置. (如果可能,不是nginx,iisnode或任何其他库).
解决了它. EACCES错误是由于我未列出需要使用这两个证书的所有站点.由于我在测试,我只使用两个站点名称,但多域证书包括一些其他站点.每个站点都需要列出如下.否则,一个或多个站点将没有与之关联的证书,从而导致EACCES错误.
var secureContext = { 'domain1': getSecureContext('domain1'),'domain3': getSecureContext('domain2'),'domain4': getSecureCOntext('domain2') } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 如何在WPF中将样式应用于Window Control?
- 使用Windows 7 Professional而不是Windows 7企业版的IE9中的
- 蓝牙 – Peerfinder中AlternateIdentities的可能键
- 调试 – 您可以从Visual Sudio 2012直接调试到Microsoft Su
- Windows – 事件ID 9331 MSExchangeSA和事件ID 9335 MSExch
- WiX获得文化预处理器变量
- windows-server-2008 – 使用Exchange 2010进行域重命名
- windows-8 – 在Win8和WP8应用程序中共享静态库
- windows-server-2008 – 具有高磁盘时间百分比的非常活跃的
- .net – 在本地运行Azure模拟器以进行生产