云服务器开启ssl及node-express开启ssl

nginx服务器ssl模块添加

ssl模块添加原文:https://www.cnblogs.com/grimm/p/14189153.html,感谢作者大大

Nginx如果未开启SSL模块,配置Https时提示错误:

nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:37

Nginx开启SSL模块流程:

切换到源码包:

cd /usr/local/src/nginx-1.18

查看nginx原有的模块

/usr/local/nginx/sbin/nginx -V

在configure arguments:后面显示的原有的configure参数如下:

--prefix=/usr/local/nginx --with-http_stub_status_module

那么我们的新配置信息就应该这样写:

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

运行上面的命令即可,等配置完

配置完成后,运行命令

make

这里不要进行make install,否则就是覆盖安装

然后备份原有已安装好的nginx

cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak

然后将刚刚编译好的nginx覆盖掉原有的nginx(这个时候nginx要停止状态)

cp ./objs/nginx /usr/local/nginx/sbin/

然后启动nginx,仍可以通过命令查看是否已经加入成功

/usr/local/nginx/sbin/nginx -V

注意以下内容

 

云服务器证书获取

省略云服务器申请及下载证书过程

  1. 登录Nginx服务器。例如,您可以使用远程登录工具(例如,PuTTY、Xshell)登录服务器。
  2. 执行以下命令,在Nginx安装目录(默认为/usr/local/nginx/conf)下创建一个用于存放证书的目录(命名为cert)。
  3. 使用远程登录工具(例如,PuTTY、Xshell)附带的本地文件上传功能,将本地证书文件和密钥文件上传到Nginx服务器的证书目录(示例中为/usr/local/nginx/conf/cert)。
  4. 编辑Nginx配置文件(nginx.conf),修改与证书相关的配置内容。具体配置如下

nginx.conf配置

worker_processes 1;

pid  /usr/local/nginx/logs/nginx.pid;

events {

 worker_connections 1024;

}

http {

 include  mime.types;

 default_type application/octet-stream;

 sendfile  on;

 keepalive_timeout 65;

 limit_req_zone $binary_remote_addr zone=allips:10m rate=1r/s;

 server {

  listen 443 ssl;

  server_name 网站域名;

  ssl_certificate cert/对应.pem;

  ssl_certificate_key cert/对应.key;

  ssl_session_timeout 5m;

  ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;

  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

  ssl_prefer_server_ciphers on;

  limit_req zone=allips burst=2 nodelay; #nodelay 不启用延迟

  error_page 500 502 503 504 /50x.html;

  location = /50x.html {

   root html;

  }

 }

//域名重写,让http重定向https

  server{

    listen 80;

    server_name 域名;

    rewrite ^/(.*)$ https://域名:443/$1 permanent;

  }

}

express开启ssl

在bin/www中,对www做修改,关键代码如下:

#!/usr/bin/env node

var path = require('path');

var fs = require('fs');

var app = require('../app');

var https = require('https');

var privateKey  = fs.readFileSync(path.join(__dirname, '../keys/名字.key'), 'utf8');

var certificate = fs.readFileSync(path.join(__dirname, '../keys/名字.pem'), 'utf8');

//在根目录新建keys文件夹放自己在云服务器下载的key与证书

var credentials = {key: privateKey, cert: certificate};

var httpsServer = https.createServer(credentials, app);

var port = normalizePort(process.env.PORT || '3000');

app.set('port', port);

httpsServer.listen(port);

function normalizePort(val) {

  var port = parseInt(val, 10);

  if (isNaN(port)) {

    // named pipe

    return val;

  }

  if (port >= 0) {

    // port number

    return port;

  }

  return false;

}

-------------金猴奋起千钧棒,玉宇澄清万里埃

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值