Tag: ssl

Express和SSL使用

我已经购买了一个Comodo SSL证书来制作SSL服务器。 我有这些文件。 AddTrustExternalCARoot.crt COMODORSAAddTrustCA.crt COMODORSADomainValidationSecureServerCA.crt mysite.com.key mysite.com.csr mysite_com.crt 根据很多文件,我需要.pem文件。 但是没有人在说什么.pem文件? var options = { key: fs.readFileSync('/key.pem'), cert: fs.readFileSync('/cert.pem'), ca: fs.readFileSync('/ca.pem') }; 如果有教程,这将是非常棒的。

在使用nodejs passport来集成第三方平台时,发生InternalOAuthError

我想使用护照(使用paasport-facebook和QQ)来validation用户。 但遇到以下错误:当我使用Facebook身份validation: error when auth: { [InternalOAuthError: Failed to obtain access token] name: 'InternalOAuthError', message: 'Failed to obtain access token', oauthError: [Error: Hostname/IP doesn't match certificate's altnames] } 当我使用QQ身份validation,我得到这个: name: 'InternalOAuthError', message: 'failed to obtain access token', oauthError: [Error: CERT_UNTRUSTED] } 这是我的/ etc / hosts文件: 127.0.0.1 www.siyee.org 127.0.0.1 localhost 255.255.255.255 broadcasthost ::1 localhost 因为authcallback必须是域名,所以我改变了我的开发环境中的主机,以匹配Facebook服务器上的callback设置。它不是很聪明,但可以生效。任何更好的主意? 我认为这个问题是在我的主机设置或证书,但我不知道如何解决它,任何forms的帮助将是伟大的!

强制node.js使用OpenSSL的非发布副本

是否有可能使Node.js使用我自己编译的本地OpenSSL版本? 我可以用环境variables或其他方式设置吗? 我必须使用较旧的Node.js版本,但使用自己编译的OpenSSL版本。 node -pe process.versions 告诉我,Node.js正在使用较旧的OpenSSL库。

在Elastic Beanstalk单实例上configurationSSL

我正在尝试为我的NodeJS Beanstalk实例安装SSL证书。 按照Amazon的这些说明 ,我创build了YAML文件并插入了我的信息。 每次我尝试部署我得到这个错误: 应用程序版本0.0.3中的configuration文件.ebextensions / singlessl.config包含无效的YAML或JSON。 YAMLexception:扫描下一个标记时发现字符'\ t',无法在“”第10行第1列中启动任何标记:^,JSONexception:位置0处意外字符(R)。更新configuration文件。 我已经用一个精细的梳齿去掉了东西,经过了多个validation器的validation,甚至在多个操作系统上创build了它,但我似乎无法动摇这个假定的制表符。 有没有人有像JSON这样的configuration文件的例子? 我的其他configuration是在JSON和伟大的工作。 如果没有,任何人都可以看到我在这里做错了吗? Resources: sslSecurityGroupIngress: Type: AWS::EC2::SecurityGroupIngress Properties: GroupId: {Ref : MyIDHere} IpProtocol: tcp ToPort: 443 FromPort: 443 CidrIp: 0.0.0.0/0 files: /etc/nginx/conf.d/ssl.conf: mode: "000755" owner: root group: root content: | # HTTPS server server { listen 443; server_name localhost; ssl on; ssl_certificate /etc/pki/tls/certs/server.crt; ssl_certificate_key […]

SSL与节点和使用cURL混淆

我已经将我的安全节点服务器设置为: var HTTPSOptions = { hostname: config.hostname, cert: fs.readFileSync(config.ssl.cert_path), key: fs.readFileSync(config.ssl.key_path), requestCert: true, rejectUnauthorized: false, passphrase: config.ssl.ca_key_password }; HTTPSOptions.agent = new https.Agent(HTTPSOptions); var httpsServer = https.createServer(HTTPSOptions, app).listen(config.https_port, function () { console.info("HTTPS server running on %d", config.https_port); }); 我也为我的一个客户端生成了一个client.key , client.crt和client.csr ,并用服务器的.key和.crt签名。 现在,我想从客户端连接到我的API。 阅读cURL如何工作,我用: curl –key client.key –cert client.crt:clientPassword mySecureSite.com\api\call 这工作正常,除了相同的代码将工作,如果我提供任何密钥/证书或任何密码,或者即使我没有提供任何密钥/证书! 有人可以开导我吗?

ACME – 使用SAN获取子域的证书

我对即将到来的自动证书pipe理环境(ACME)感兴趣。 我下载了演示,并试用了我的主域名。 我仍然有一个问题:使用常规authentication过程,我能够获得与SAN的证书,所以我可以将其设置在我的服务器(Node.js),并为所有子域(这是虚拟主机)提供服务。 问题是, 目前的草案说明如下: 关键授权 可以重复该过程以将多个标识符关联到密钥对(例如,请求具有多个标识符的证书) 这是否意味着即使它们是同一主域(“主标识符”)的一部分,我也需要为每个子域颁发由相同密钥生成的新证书? 谢谢你的答案。

从Windows的Node.js客户端证书…我怎么知道证书是否被发送?

我有一个客户端证书安全的rest端点,当我通过curl使用Linux-land中的一个已知的证书打开它的时候,这就是说,如果我console.log(req.connection.getPeerCertificate()) ,我看到一堆东西。 凉。 …但是,当我的一个队友试图从Windows机器上击中同一端点时,req.connection.getPeerCertificate()是一个空对象,即使他们认为他们正确地附加了证书。 什么是最好的方式来告诉他们是否确实正确地附加证书? 我应该如何去debugging呢?

Socket.io聊天服务器不提供SSL证书

(简单)聊天是我刚才创build的应用程序的一部分。 今天我将网站从http切换到https。 因此,我也必须SSL我的Socket.io聊天套接字,否则浏览器会发牢骚。 由于某种原因,虽然我的聊天服务器根本没有提交任何证书。 在Linux上使用openssl证实了这一点: openssl s_client -connect my.subdomain.tld:1337 -servername my.subdomain.tld -ssl3 回报 CONNECTED(00000003) 140136057653064:error:1409E0E5:SSL routines:SSL3_WRITE_BYTES:ssl handshake failure:s3_pkt.c:596: — no peer certificate available — No client certificate CA names sent — SSL handshake has read 0 bytes and written 0 bytes — New, (NONE), Cipher is (NONE) Secure Renegotiation IS NOT supported Compression: NONE Expansion: […]

用于Webhook的Node.JS https服务器获取握手错误

下面的NodeJS只是处理来自另一个源的webhook。 我testing了它,它在http端口80上工作,但源需要https。 当我打开该端口并在443上运行此脚本时,使用curl进行testing会得到以下错误。 但是我不认为应该要求证书吗? 我怎么解决这个问题? curl: (35) SSL peer handshake failed, the server most likely requires a client certificate to connect 这是脚本: var http = require('https') var server = http.createServer(function(req, res) { if (req.method == "POST") { var str = '' req.on('data', function(data) { str += data }) req.on('end', function() { var json = JSON.parse(str) […]

mongooseSSL,连接不被接受

所以我花了一点时间来设置SSL和授权的repl集。 但是,我已经build立并最终工作,并可以通过命令行连接提供适当的参数。 我试图用mongoose做同样的事情,但是我不断收到mongodb日志中的错误,如下所示: AssertionException handling request, closing client connection: 17189 The server is configured to only allow SSL connections即使我指定所有ssl选项。 我的代码如下: var m = require('mongoose'); var key = fs.readFileSync('/home/node/mongodb/mongodb.pem'); var ca = [fs.readFileSync('/home/node/mongodb/ca.pem')]; var o = { server: { sslValidate:true, sslCA: ca, sslKey: key, sslCert:key }, user: '****', pass: '****' }; m.connect('mongodb://dbAddr/dbName', o) 我已经尝试设置sslValidate为false ,同样的问题。 我已经尝试了没有CA,证书和/或密钥在多个组合。 […]