Openssl自签证书|Nginx配置全站HTTPS,包括WSS(websocket)

一.生成自签证书
如果有购买证书的,可忽略此步骤。
生成方法一:
openssl genrsa -des3 -out ca.key 1024
openssl rsa -in ca.key -out ca.key.nopass
openssl req -new -key ca.key.nopass -out server.csr
openssl x509 -req -days 365 -in server.csr -signkey ca.key.nopass -out server.crt
生成方法二:
- 建立CA密钥
创建密钥
openssl genrsa -des3 -out ca.key 1024
2.利用CA密钥自签署CA证书
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
3.生成(eg服务器端的)私钥(key文件)
openssl genrsa -des3 -out server.key 1024
4.用server.key生成一个证书
openssl req -new -key server.key -out server.csr
5.用CA的证书为生成的server.csr文件签名
openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key
6.证书撤销
不需要吊销证书的,可不必执行此步骤。
openssl ca -keyfile ca.key -cert ca.crt -revoke server.crt
这时数据库被更新证书被标记上撤销的标志,需要生成新的证书撤销列表:
openssl ca -gencrl -keyfile ca.key -cert ca.crt -out test.crl
查看证书撤销列表:
openssl crl -noout -text -in crl/test.crl
二.配置HTTPS
/mnt/cert/xxx 为证书 存放路径,自行更正。
listen 80;
listen 443 ssl;
ssl_certificate /mnt/cert/xxx/server.crt;#你的证书位置
ssl_certificate_key /mnt/cert/xxx/ca.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
三.强制http跳转https
强制http请求跳转到https上,可以配置两个server,然后进行301跳转。这里通过判断域名的方式,更直接简单。
if ($scheme = 'http') {
return 301 https://$host$request_uri;
}
四.配置wss(websocket)
给websocket长连接请求增加上tls保护,使其原本的ws变成wss。
这里和http请求配置tls基本一致,需要在其基础上增加http协议头参数,如下:
location /wsapp/ {
proxy_pass http://wsbackend;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
如果不增加如上参数,反向代理时原本的websocket请求就当做http请求反馈给后端,导致无法定位到具体资源。从而致使前端收到响应404.
Openssl自签证书|Nginx配置全站HTTPS,包括WSS(websocket)的更多相关文章
- Ubuntu + Nginx 配置全站https访问
最近跟室友要一起搞一个个人公众号,提前想把生态想清楚了,所以准备部署一个网站 正好公司有Microsoft Visual Studio Professional订阅,每个月有50刀免费额度,对于Azu ...
- Nginx配置支持https协议-应用实践
Nginx配置支持https协议-应用实践 https简介 HTTPS 是运行在 TLS/SSL 之上的 HTTP,与普通的 HTTP 相比,在数据传输的安全性上有很大的提升. TLS是传输层安全协议 ...
- 使用OpenSSL自建CA + Nginx配置HTTPS
Ubuntu 16.04(ECS),OpenSSL 1.0.2g 1 Mar 2016,Nginx 1.10.3 (Ubuntu), 浏览器:Chrome 67,Firefox 61,Edge 40 ...
- nginx配置访问https[自签版]
通过openssl生成证书 (1)设置server.key,这里需要设置两遍密码: openssl genrsa -des3 -out server.key 1024 (2)参数设置,首先这里需要输入 ...
- Ubuntu 18.04使用OpenSSL自签证书(证书支持多IP及多域名,谷歌浏览器无警告)
前言 在HTTPS数据传输的过程中,需要用SSL/TLS对数据进行加密和解密,以保证网络传输过程中数据的机密性.HTTPS协议可以大致分为两个部分:其一是协商密钥,首先当Client向Web Serv ...
- centos 6.9 +nginx 配置GIT HTTPS服务器(证书采用自签名)
第一部分原通过SSH访问的GIT服务器迁移 1.把原服务器GIT资源库目录完成复制至新的服务器 2.安装GIT服务器 新的服务器 创建用户 useradd git password git 下载GIT ...
- nginx配置本地https
客户端如何验证服务器的证书呢?服务器自己的证书必须经过某"权威"证书的签名,而这个"权威"证书又可能经过更权威的证书签名,这么一级一级追溯上去,最顶层那个最权威 ...
- NGINX 配置本地HTTPS(双向认证)
一.SSL协议加密方式 SSL协议即用到了对称加密也用到了非对称加密(公钥加密),在建立传输链路时,SSL首先对对称加密的密钥使用公钥进行非对称加密,链路建立好之后,SSL对传输内容使用对称加密. 1 ...
- nginx 配置全站404(百度闭站保护)
在百度站长里申请闭站保护时,需要全站404.可能过nginx配置实现 location / { #root html; #index index.html index.htm; retur ...
- Nginx 实现全站 HTTPS(基于 Let's Encrypt 的免费通配符证书)
单域名证书的生成可以 参考这里. acme.sh 项目中文文档 Let's Encrypt 在 18 年 1 月份推出了 ACME v2,支持通配符域名证书,对小网站.个人站长的友好度进一步增加. 常 ...
随机推荐
- 关于 echarts 使用 geo 制作地图 tooltip 不显示问题(转)
原文地址 我之前遇到过这问题,单独设置 tooltip 没效果,geo 下面也有 tooltip 属性,但是也不管用,网上查了一下说 geo 不支持 tooltip 提示框显示,就自己根据 echar ...
- perl正则
名字 表达式 如果子表达式成功则 - positive lookahead (零宽度正预测先行断言 ) (?=subexp) 如果匹配到右边则成功 negative lookahead (零宽度负预测 ...
- 配置PostMan以访问、连接D365 / Dataverse环境
有人提出个问题说国内21V环境能否使用postman连接CRM? 官方链接:https://learn.microsoft.com/en-us/power-apps/developer/data-pl ...
- vmware 二次虚拟化
在创建的虚拟机的目录内找到扩展名为vmx的文件,在文件的最后添加 hypervisor.cpuid.v0 = "FALSE" 保存 重新打开虚拟机在 在虚拟机配置开启虚拟化
- drf从入门到飞升仙界 04
序列化类常用字段和字段参数 常用字段类 #1 BooleanField BooleanField() #2 NullBooleanField NullBooleanField() #3 CharFie ...
- vue 移动端px转rem
1.安装lib-flexible 终端执行命令:npm i lib-flexible --save 2.在main.js引入lib-flexible 3.终端执行命令:npm install post ...
- Java数组之多维数组
多维数组 多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组. 二维数组 int a[][] = new int[2][5]; 解析:以上二维数组a可以看成 ...
- vscode - plug - scss转css
vscode - plug - scss转css 参考资料 sass笔记(完结)安装,使用,vscode中设置easy sass,嵌套,变量,混合,循环,分支 vscode配置 easy sass E ...
- Flask的介绍、安装和使用
Flask的介绍 Flask其实就是Python-web中的一个框架,也就是说Flask是一个工具,提供了库和技术来让你建立一个web的应用程序.这个程序可以使一些web页面.博客.基于web的日历应 ...
- 【七侠传】冲刺阶段--Day6
[七侠传]冲刺阶段--Day6 团队成员 20181221曾宇涛 20181202李祎铭 20181209沙桐 20181215薛胜瀚 20181216杨越麒 20181223何家豪 20181232 ...