nginx 配置https并自签名证书
作者: daodaoliang
版本: V1.0.1
邮箱: daodaoliang@yeah.net
1. 制作服务器证书
服务器CA私钥:
openssl genrsa -des3 -out ca.key 2048
制作解密后的CA私钥(一般无此必要):
openssl rsa -in ca.key -out ca_decrypted.key
ca.crt CA根证书(公钥):
openssl req -new -x509 -days 7305 -key ca.key -out ca.crt
2. 制作生成网站的证书并用CA签名认证
在这里,假设网站域名为 www.example.com
生成 www.example.com 证书私钥:
openssl genrsa -des3 -out www.example.com.pem 1024
制作解密后的 www.example.com 证书私钥:
openssl rsa -in www.example.com.pem -out www.example.com.key
生成签名请求:
openssl req -new -key www.example.com.pem -out www.example.com.csr
在common name中填入网站域名,如 www.example.com 即可生成改站点的证书,同时也可以使用泛域名如 *.example.com 来生成所有二级域名可用的网站证书。
用CA进行签名:
openssl ca -policy policy_anything -days 1460 -cert ca.crt -keyfile ca.key -in www.example.com.csr -out www.example.com.crt
其中,policy参数允许签名的CA和网站证书可以有不同的国家、地名等信息,days参数则是签名时限。
如果在执行签名命令时,出现“I am unable to access the ../../CA/newcerts directory”
修改/etc/pki/tls/openssl.cnf中“dir = ./CA”
然后:
mkdir -p CA/newcerts
touch CA/index.txt
touch CA/serial
echo "01" > CA/serial
再重新执行签名命令。
最后,把ca.crt的内容粘贴到 www.example.com.crt 后面。这个比较重要!因为不这样做,可能会有某些浏览器不支持。
好了,现在https需要到的网站私钥 www.example.com.key 和网站证书 www.example.com.crt 都准备完毕。接下来开始配置服务端。
3. 配置nginx
新开一个虚拟主机,并在server{}段中设置:
listen 443;
ssl on;
ssl_certificate /path/to/www.example.com.crt;
ssl_certificate_key /path/to/www.example.com.key;
其中的路径是刚刚生成的网站证书的路径。
然后使用一下命令检测配置和重新加载nginx:
检测配置:
nginx -t
重新加载:
nginx -s reload
4. 优化nginx配置
https和http共存:
server {
listen 80;
listen 443 ssl;
server_name zou.lu;
root /var/www/html;
#ssl on; //这行必须要注释掉
ssl_certificate /usr/local/nginx/conf/zou_lu.crt;
ssl_certificate_key /usr/local/nginx/conf/zoulukey.pem;
}
优化性能:
在http{}中加入:
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
据官方文档所述,cache中的1m可以存放4000个session。
在配置https的虚拟主机server{}中加入:
keepalive_timeout 70;
PS:常见错误:
有时候,会发现,在phpMyAdmin等程序登入后会错误地跳转http的问题。解决方法是定位至“location ~ .*.(php | php5)?${}”在include fcgi.conf;或者在fastcgi_param配置后面加上: |
fastcgi_param HTTPS on;
fastcgi_param HTTP_SCHEME https;
http://daodaoliang.com/blog/2016/10/28/nginx%E9%85%8D%E7%BD%AEhttps%E5%B9%B6%E8%87%AA%E7%AD%BE%E5%90%8D%E8%AF%81%E4%B9%A6.html
nginx 配置https并自签名证书的更多相关文章
- 为nginx配置https并自签名证书
一.把证书准备好. 步骤与使用OpenSSL自签发服务器https证书所述大同小异.在这里再重复一次. 1.制作CA证书: ca.key CA私钥: openssl genrsa -des3 -out ...
- nginx配置https转发到tomcat(使用自签名的证书)
一.使用openSSL生成自签名的证书 1.生成RSA私钥 命令:openssl genrsa -des3 -out server.key 1024 说明:生成rsa私钥,des3算法,1024强度, ...
- nginx配置https及Android客户端访问自签名证书
前一篇随笔通过keytool生成keystore并为tomcat配置https,这篇随笔记录如何给nginx配置https.如果nginx已配置https,则tomcat就不需要再配置https了.通 ...
- nginx配置https双向验证(ca机构证书+自签证书)
nginx配置https双向验证 服务端验证(ca机构证书) 客户端验证(服务器自签证书) 本文用的阿里云签发的免费证书实验,下载nginx安装ssl,文件夹有两个文件 这两个文件用于做服务器http ...
- 购买https证书以及nginx配置https
文章来源 运维公会:购买https证书以及nginx配置https 1.https的作用 https的全名是安全超文本传输协议,是在http的基础上增加了ssl加密协议.在信息传输的过程中,信息有可能 ...
- 【Nginx(五)】Nginx配置Https证书
大致的流程如下 1.申请Https证书,绑定域名信息; 由于自己的服务器是腾讯云服务器, 这里就在腾讯云上申请SSL证书, 申请地址: https://console.cloud.tencent.co ...
- 【转】Linux下nginx配置https协议访问的方法
一.配置nginx支持https协议访问,需要在编译安装nginx的时候添加相应的模块--with-http_ssl_module 查看nginx编译参数:/usr/local/nginx/sbin/ ...
- lnmp之Nginx配置https加密访问
配置lnmp之Nginx网站支持https加密访问 注: 1. 这里拿购买的(pxsnx.pxjy.com)证书来做样例 证书文件共有三个---> (pxsnxg.pxjy.com_ca.crt ...
- Nginx 配置https 服务
一.HTTPS 服务 为什么需要HTTPS? 原因:HTTP不安全 1.传输数据被中间人盗用.信息泄露 2.数据内容劫持.篡改 HTTPS协议的实现 对传输内容进行加密以及身份验证 HTTPS加密校验 ...
随机推荐
- Spring Boot 学习笔记一(SpringBoot启动过程)
SpringBoot启动 Spring Boot通常有一个名为*Application的入口类,在入口类里有一个main方法,这个main方法其实就是一个标准的java应用的入口方法. 在main方法 ...
- [Android]TextView点击获取部分内容
TextView控件本身有很多属性可以进行控制,如果要获取内容只需要getText()方法就可以实现,同时也可以为TextView设置各种监听器.但是,如果想要实现点击获取TextView内部的部分内 ...
- Himi浅谈游戏开发de自学历程!(仅供参考)
李华明Himi原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/himistudy/382.html ☞ 点击订阅 ☜ 本博客 ...
- win7 UAC bypass(微软已经给予了三组组件绕过UAC启动的特权)
fireworm同学的翻译: 原文在http://www.pretentiousname.com/misc/win7_uac_whitelist2.html我只翻译了其中关于原理的一小部分,有兴趣的可 ...
- VSCode 小鸡汤 第01期 - REST Client 简单好用的接口测试辅助工具
介绍 今天给大家介绍一个后端开发辅助的好工具 -- REST Client,插件如其名这就是一个 REST 的客户端插件,把我们的 VSCode 转化为一个 REST 接口测试的利器 我们一般都会用 ...
- HistCite 引文分析软件的利器
所需工具及网站清单, HISTCITE:DOWNLOAD YOUR FREE COPY. 提交自己的基本信息即可,十分简单: SCI数据库官网(web of science):http://apps. ...
- 机器学习: Tensor Flow with CNN 做表情识别
我们利用 TensorFlow 构造 CNN 做表情识别,我们用的是FER-2013 这个数据库, 这个数据库一共有 35887 张人脸图像,这里只是做一个简单到仿真实验,为了计算方便,我们用其中到 ...
- x:Static , StaticResource 和DynamicResource等XAML 扩展用法
原文:x:Static , StaticResource 和DynamicResource等XAML 扩展用法 前提: <system:String x:Key="{Component ...
- get与post一些特殊情况下
p=574"> 文章已经迁移至http://androiddevelop.cn/?p=574 版权声明:本文博客原创文章.博客,未经同意,不得转载.
- Golang写https服务端
1. 生成私钥openssl genrsa -out key.pem 20482. 生成证书openssl req -new -x509 -key key.pem -out cert.pem -day ...