最近在搞小程序,小程序的服务必须使用https协议,以前没学过这些,因而写下这篇博客,记录本身遇到的问题node
本篇博客解决这些问题,服务器的登录配置、项目的部署、https证书的申请、nginx部署https与转发本地服务linux
使用终端进行配置nginx
// 赋予私钥文件仅本人可读权限 chmod 400 <下载的与云服务器关联的私钥的绝对路径> // 运行如下远程登陆命令 ssh -i <下载的与云服务器关联的私钥的绝对路径> <username>@<hostname or ip address>
// 下载nvm wget https://github.com/cnpm/nvm/archive/v0.23.0.tar.gz // 解压nvm tar -xf v0.23.0.tar.gz // 进入目录 cd nvm-0.23.0/ // 安装nvm ./install.sh // 安装后执行 source ~/.bash_profile
使用nvm安装nodegit
nvm install 10.14.2
因为个人代码托管在github上,给服务器安装git方便管理代码github
在linux安装gitnpm
git clone https://github.com/lfhwnqe/wechat_server.git
进入项目根目录安装依赖小程序
cd wechat_server npm install
启动项目进行链接缓存
npm start
如今项目在本7001端口启动bash
此时访问服务器公网ip:7001就能够访问到服务器上启动的服务服务器
在服务器运行一下命令,经过openssl生成csr和私钥
openssl req -new -newkey rsa:2048 -sha256 -nodes -out linuoblog.cn.csr -keyout linuoblog.cn.key -subj "/C=CN/ST=ShenZhen/L=ShenZhen/O=NUO Inc./OU=Web Security/CN=linuoblog.cn"
下面是上述命令相关字段含义:
要开启 HTTPS 服务,在配置文件信息块(server block),必须使用监听命令 listen
的 ssl 参数和定义服务器证书文件和私钥文件,同时经过设置location模块把发送到网页的请求转发到服务器上的node服务,以下所示:
worker_processes auto; http { #配置共享会话缓存大小,视站点访问状况设定 ssl_session_cache shared:SSL:10m; #配置会话超时时间 ssl_session_timeout 10m; server { listen 443 ssl; server_name linuoblog.cn; #设置长链接 keepalive_timeout 70; #HSTS策略 add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; #证书文件 ssl_certificate full_chain.pem; # 证书的路径 #私钥文件 ssl_certificate_key linuoblog.cn.key; # 私钥的路径 location / { # 这里是把连接代理到本机的7001端口 proxy_pass http://127.0.0.1:7001; } } } events { worker_connections 1024; ## Default: 1024 }
配置完成后启动nginx
nginx
这个时候,访问本身的域名就能看到https服务了。同时也经过nginx把网页端的请求转发到了服务器本地的server上
原文地址