Nginx 配置HTTPS 与Node.js 配置HTTPS方法

前段时间公司网站要求加上HTTPS安全CA证书,公司服务器全是阿里云服务器,并且配有负载均衡,所以选择直接在阿里云购买CA证书,阿里云有一种证书可以免费试用一年,决定申请此证书,阿里云证书需要验证,阿里云有详细教程

配置之后发现所有在HTTPS访问的网站下的所有连接都需要是HTTPS访问,所以还是需要自己进行配置

配置方案记录一下,方便以后自己配置查找

环境

Centos6.8  Nginx  yum安装

首先要将下载的CA证书上传到服务器上面 , 然后打开/etc/nginx/conf.d/自己配置文件名.conf

然后将下面代码添加进去

 ssl_certificate   /etc/nginx/conf.d/214521058020911.pem;#此处为安全成熟的pem文件需要根据自己的实际情况配置路径
    ssl_certificate_key  /etc/nginx/conf.d/214521058020911.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;

添加后如下显示

server {
    listen       443;
    server_name  自己的域名;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
       try_files $uri $uri/ /index.php?$query_string;
       client_max_body_size 1000m;
    }
    root   项目目录;
    index  index.php;

    ssl_certificate   /etc/nginx/conf.d/214521058020981.pem;
    ssl_certificate_key  /etc/nginx/conf.d/214521058020981.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;
.....以下省略

然后在后来配置Windows服务器的时候,用的PHPStudy集成环境配置发现还需要加入

SSL  on

重启之后生效。

网站本身需要一个实时数据推送,所以我采用了node.js的socket.io模块进行推送,然后找到配置方法如下

var http = require(‘http‘);
var https = require(‘https‘);
var fs = require(‘fs‘);

var options = {
    key: fs.readFileSync(‘./214521058020981.key‘),//配置自己的证书
    cert: fs.readFileSync(‘./214521058020981.pem‘)//同上
}

var server = https.createServer(options).listen(监听端口);
var io = require(‘socket.io‘)(server);

此为配置方法,引入时用https://自己域名进行引入即可

注意:同一个服务器无法进行node.js和Nginx同时配置HTTPS,因为占用同一个443端口发生冲突,至于是不是可以采用Nginx来为node.js提供Https访问,我没试验

原文地址:https://www.cnblogs.com/Gasg/p/8496662.html

时间: 2024-08-01 21:06:57

Nginx 配置HTTPS 与Node.js 配置HTTPS方法的相关文章

Node.js配置And HelloWorld

先从https://nodejs.org/en/上下载Node.js的安装程序  node-v4.4.4-x64.msi 直接双击运行,安装到默认路径 C:\Program Files\nodejs 安装完成后需要配置一下环境变量 我的电脑右键->属性->高级系统设置->环境变量->在path后面加上C:\Program Files\nodejs\node.exe   (node.js的安装目录中的可执行文件) cmd 打印出了版本号说明安装成功了. 开始我的第一个Node.js程

node.js配置允许跨域请求,设置允许携带的请求头参数

最近在用node.js写自己的后台时遇见了跨域问题,之前处理跨域都是在前端配置代理解决的,这次打算在后台解决,中途也遇到了一些坑,比如我在请求头里加了一个自定义的参数token,结果后台配置的时候没有允许请求能够携带该参数,造成预检请求发出后,就没任何响应了.为此折腾了半天才发现问题...还是对它不够了解,所以查阅了相关资料,下面做出自己的理解: 都知道跨域是因为浏览器的同源策略造成的,当客户端访问服务端时,如果两端的ip.端口.协议任意一个不同就会产生跨域.下面介绍node.js后台如何配置允

node.js配置与开发

Node.js(http://nodejs.org/)是服务器平台程序,它包含若干个基于Goole的JavaScriptV8引擎的库,2009年,Ryan Dahl创建了Node.js,它可用来创建快速,可扩展的网络应用,Node.js使用一种事件驱动.无阻碍.轻量级.高效的I/O模型. 一. 安装和配置node.js 下载地址:http://www.nodejs.org/download/,下载完成后运行node-v0.12.7-x86.msi,默认的安装路径是C:\\Program File

使用pkg打包Node.js应用的方法步骤

Node.js应用不需要经过编译过程,可以直接把源代码拷贝到部署机上执行,确实比C++.Java这类编译型应用部署方便.然而,Node.js应用执行需要有运行环境,意味着你需要先在部署机器上安装Node.js.虽说没有麻烦到哪里去,但毕竟多了一个步骤,特别是对于离线环境下的部署机,麻烦程度还要上升一级.假设你用Node.js写一些小的桌面级工具软件,部署到客户机上还要先安装Node.js,有点“大炮打蚊子”的感觉.更严重的是,如果部署机器上游多个Node.js应用,而且这些应用要依赖于不同的No

Node.js常用express方法

Node.js 手册查询-Express 方法 1.send方法 send 方法向浏览器发送一个响应信息,并可以智能处理不同类型的数据 send方法在输出响应时会自动进行一些设置,比如HEAD信息.HTTP缓存支持等等 类型可以是: String, Array, Object, Number. 当参数为一个String时,Content-Type默认设置为"text/html" 当参数为Array或Object时,Express会返回一个JSON 当参数为一个NumberExpress

windows server+express+node.js配置https

服务端和客户端各有一对公钥和私钥,使用公钥加密的数据只能用私钥解密,建立https传输之前,客户端和服务端互换公钥.客户端发送数据前使用服务端公钥加密,服务端接收到数据后使用私钥解密,反之亦如此. 公钥私钥的生成可用openssl(linux,mac自带,windows上需要自己安装)工具来生成,具体生成步骤如下 1: 生成服务端客户端公钥私钥 // 生成服务器端私钥 $ openssl genrsa -out server.key 1024 //生成服务端公钥 $ openssl rsa -i

Node.js 配置Nginx

1.修改nginx.conf upstream nodejs { server 127.0.0.1:3000; #server 127.0.0.1:3001; keepalive 64; } server { listen 80; server_name www.isoftlink.com isoftlink.com; access_log /var/log/nginx/test.log; location / { proxy_set_header X-Real-IP $remote_addr;

Node.js 搭建 https 协议 服务器

var https = require('https'); //创建服务器 https var fs = require('fs'); //文件系统的模块 const hostname = '127.0.0.1'; const port = 3000; var options = { key : fs.readFileSync('ssh_key.pem'), //读出 sytly 文件? cert : fs.readFileSync('ssh_cert.pem'), //同步读出 SSL 证书

node.js 配置首页打开页面

/*var http = require('http');var fs = require('fs');var url = require('url'); var http = require("http");http.createServer(function(request, response) { response.writeHead(200, {"Content-Type": "text/plain"}); response.write(