Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何在基于NodeJS(Express)的服务器上启用SSL连接_Node.js_Ssl - Fatal编程技术网

Node.js 如何在基于NodeJS(Express)的服务器上启用SSL连接

Node.js 如何在基于NodeJS(Express)的服务器上启用SSL连接,node.js,ssl,Node.js,Ssl,以下是我在NodeJS官方网站上找到的脚本: // curl -k https://localhost:8000/ const https = require('https'); const fs = require('fs'); const options = { key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'), cert: fs.readFileSync('test/fixtures/keys/agent2-cer

以下是我在NodeJS官方网站上找到的脚本:

// curl -k https://localhost:8000/
const https = require('https');
const fs = require('fs');

const options = {
  key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'),
  cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem')
};

https.createServer(options, (req, res) => {
  res.writeHead(200);
  res.end('hello world\n');
}).listen(8000);
我对SSL完全陌生。我读了一些关于如何在Nodejs上启用SSL的教程,但仍然对这个过程没有信心

我有一个域名(Godaddy)、SSL(namescape)和云服务器(Digital Ocean,其应用程序部署在HTTP前缀上)

每当我打开我的网站的登录页面时,Google Chrome会将其标记为“不安全”,因此我想向网站添加SSL

我需要在NodeJS服务器(Express)上做什么,在namescape上做什么?这样做的顺序是什么?生成.pem.csr文件的cmd行是什么

我并没有找到一个完整的指南,它以简洁的方式列出了所有的步骤,所以只是简单地列出了这些步骤(如果可能的话),并提供了到资源的链接,以便进一步挖掘


另外,我如何使用express framework在上述脚本的liue中创建https服务器?

该脚本对于设置https证书是正确的。如果您的站点看起来是公共的,那么您将希望从您的ssl服务购买证书,在您的示例中,它是廉价的。然后将它们移动到主机,并在示例中的options对象中引用它们。但是,您可以生成自己的ssl证书,这也会起作用。但是,由于您自签名/创建了用户,因此会警告任何用户不信任他们。我建议选择便宜货

注意:您的示例中只有一个https服务器,任何试图通过http访问您的站点的人都将收到一个空白页面。您还需要通过以下方式创建http服务器:

var http = require('http');
http.createServer(...);

我建议让http服务器直接重定向到https url。

该脚本对于设置https证书是正确的。如果您的站点看起来是公共的,那么您将希望从您的ssl服务购买证书,在您的示例中,它是廉价的。然后将它们移动到主机,并在示例中的options对象中引用它们。但是,您可以生成自己的ssl证书,这也会起作用。但是,由于您自签名/创建了用户,因此会警告任何用户不信任他们。我建议选择便宜货

注意:您的示例中只有一个https服务器,任何试图通过http访问您的站点的人都将收到一个空白页面。您还需要通过以下方式创建http服务器:

var http = require('http');
http.createServer(...);

我建议让http服务器直接重定向到https url。

我的代码和错误如下:

未找到此类目录错误:

  key: fs.readFileSync('../private.key'),

  cert: fs.readFileSync('../public.cert')
错误,找不到这样的目录

  key: fs.readFileSync('./private.key'),

  cert: fs.readFileSync('./public.cert')
工作代码应为

key: fs.readFileSync(__dirname + '/private.key', 'utf8'),

cert: fs.readFileSync(__dirname + '/public.cert', 'utf8')
完整的https代码是:

这是我的express 4.0的工作代码

express 4.0与3.0及其他版本非常不同

4.0您有/bin/www文件,您将在此处添加https

“npm启动”是启动express 4.0服务器的标准方式

readFileSync()函数应使用\uu dirname获取当前目录

而require()则使用。/参考当前目录

首先将private.key和public.cert文件放在/bin文件夹下,
它与WWW文件位于同一文件夹中

我的代码和错误如下:

未找到此类目录错误:

  key: fs.readFileSync('../private.key'),

  cert: fs.readFileSync('../public.cert')
错误,找不到这样的目录

  key: fs.readFileSync('./private.key'),

  cert: fs.readFileSync('./public.cert')
工作代码应为

key: fs.readFileSync(__dirname + '/private.key', 'utf8'),

cert: fs.readFileSync(__dirname + '/public.cert', 'utf8')
完整的https代码是:

这是我的express 4.0的工作代码

express 4.0与3.0及其他版本非常不同

4.0您有/bin/www文件,您将在此处添加https

“npm启动”是启动express 4.0服务器的标准方式

readFileSync()函数应使用\uu dirname获取当前目录

而require()则使用。/参考当前目录

首先将private.key和public.cert文件放在/bin文件夹下, 它与WWW文件位于同一文件夹中

试试这个。试试这个。