1、Express+Https+Nginx搭建小程序后台

2017-12-05  本文已影响0人  张干脆

一、原料:

1、Express

2、Openssl

3、Nginx

二、过程:

1、Express项目搭建(省略)

2、Openssl生成密钥

1)下载openssl

下载链接:http://slproweb.com/products/Win32OpenSSL.html

2)安装openssl,配置环境变量

3)生成密钥文件,命令行

1>创建文件夹cert(将文件夹放到项目根目录下)

2>进入cert ,生成lee.key:openssl genrsa -des3 -out lee.key 1024

3>生成lee.csr:openssl req -new -key lee.key -out lee.csr

注意: Common Name,即为我们要使用https访问的域名。(例如:www.example.com)

4>去除密码:copy lee.key lee.key.org;

openssl rsa -in lee.key.org -out lee.key

5>生成crt证书:openssl x509 -req -days 365 -in lee.csr -signkey lee.key -out lee.crt

用到的是lee.crt和lee.key

3、Nginx

1)下载Nginx

下载链接:http://nginx.org/en/download.html

2)配置Nginx(nginx.config文件)

upstream web-server {

server 192.168.1.9:3000;

}

server {

listen 80;

listen      443 ssl;

server_name  www.example.com; #域名

ssl_certificate      G:/www/demo1/cert/lee.crt;

ssl_certificate_key  G:/www/demo1/cert/lee.key;

ssl_ciphers  HIGH:!aNULL:!MD5;

ssl_prefer_server_ciphers  on;

location / {

proxy_pass http://web-server;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

}

3)配置hosts文件(要访问https://www.example.com的电脑都得配置)

192.168.1.9      www.example.com

4)开启、停止、重启Nginx命令

1>开启nginx: start nginx;

2>关闭nginx: nginx -s quit;

3>重启nginx: nginx -s reload;(每次修改nginx.config文件,都需要重启)

4、开启服务

1)开启express项目:node app.js

2)开启nginx服务:start nginx

3)访问 https://www.example.com

5、遇见的问题

1)Authorization Required 

原因::nginx未开启,443端口被占

通过运行开启命令行:start nginx; 查看err.log文件

2017/12/05 10:12:34 [emerg] 10588#9692: bind() to 0.0.0.0:443failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions)

解决:杀死占用443端口的进程

命令行:

杀死进程有关命令行:

1>查看PID: netstat -aon|findstr "443"

2>查看PID对应进程:tasklist|findstr "PID的值"

2)其他机器(客户端)访问问题:【关闭防火墙、hosts文件(客户端)配置】

上一篇下一篇

猜你喜欢

热点阅读