使用自签的证书配置nginx的https
2016-08-10 14:15
671 查看
1、生成根证书密钥
#] openssl genrsa -des3 -out ca.key 2048
2、自签证书
#] openssl req -new -x509 -days 7305 -key ca.key -out ca.crt
参数说明:
req: 生成证书签署请求
-news: 新请求
-key /path/to/keyfile: 指定私钥文件
-out /path/to/somefile:
-x509: 生成自签署证书
-days n: 有效天数
3、准备必要文件:
#] touch /etc/pki/CA/{index.txt,serial}
#] echo 01 > /etc/pki/CA/serial
4、制作网站证书并用此CA签名,假设网站域名为web1
生成证书密钥:
#] openssl genrsa -des3 -out web1.pem 1024
制作解密后的web1证书私钥:
#] openssl rsa -in web1.pem -out web1.key
生成签名请求,在common name中填入网站域名,如web1即可生成改站点的证书,同时也可以使用泛域名如*.web1来生成所有二级域名可用的网站证书:
#] openssl req -new -key web1.pem -out web1.csr
用CA进行签名:
#] openssl ca -policy policy_anything -days 365 -cert ca.crt -keyfile ca.key -in web1.csr -out web1.crt
其中,policy参数允许签名的CA和网站证书可以有不同的国家、地名等信息,days参数则是签名时限。
最后,把ca.crt的内容粘贴到web1.crt后面。这个比较重要!因为不这样做,可能会有某些浏览器不支持。
5、配置nginx支持https
在nginx.conf配置文件server配置中增加一下配置:
listen 443;
ssl on;
ssl_certificate /path/to/web1.crt;
ssl_certificate_key /path/to/web1.key;
其中的路径是刚刚生成的网站证书的路径。
然后使用一下命令检测配置和重新加载nginx:
检测配置:
nginx -t
重新加载:
nginx -s reload
6、优化nginx配置
在http{}中加入:
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
据官方文档所述,cache中的1m可以存放4000个session。
在配置https的虚拟主机server{}中加入:
keepalive_timeout 70;
7、客户端浏览器导入根证书和网站证书
打开证书管理工具:运行certmgr.msc命令(也可以在浏览器中导入证书)
将根证书ca.crt导入至受信任的根证书颁发机构,网站证书web1.crt导入到个人正式中。
然后在浏览器中输入https://domain,地址栏左侧会出现一把绿色的锁,如下图:
#] openssl genrsa -des3 -out ca.key 2048
2、自签证书
#] openssl req -new -x509 -days 7305 -key ca.key -out ca.crt
参数说明:
req: 生成证书签署请求
-news: 新请求
-key /path/to/keyfile: 指定私钥文件
-out /path/to/somefile:
-x509: 生成自签署证书
-days n: 有效天数
3、准备必要文件:
#] touch /etc/pki/CA/{index.txt,serial}
#] echo 01 > /etc/pki/CA/serial
4、制作网站证书并用此CA签名,假设网站域名为web1
生成证书密钥:
#] openssl genrsa -des3 -out web1.pem 1024
制作解密后的web1证书私钥:
#] openssl rsa -in web1.pem -out web1.key
生成签名请求,在common name中填入网站域名,如web1即可生成改站点的证书,同时也可以使用泛域名如*.web1来生成所有二级域名可用的网站证书:
#] openssl req -new -key web1.pem -out web1.csr
用CA进行签名:
#] openssl ca -policy policy_anything -days 365 -cert ca.crt -keyfile ca.key -in web1.csr -out web1.crt
其中,policy参数允许签名的CA和网站证书可以有不同的国家、地名等信息,days参数则是签名时限。
最后,把ca.crt的内容粘贴到web1.crt后面。这个比较重要!因为不这样做,可能会有某些浏览器不支持。
5、配置nginx支持https
在nginx.conf配置文件server配置中增加一下配置:
listen 443;
ssl on;
ssl_certificate /path/to/web1.crt;
ssl_certificate_key /path/to/web1.key;
其中的路径是刚刚生成的网站证书的路径。
然后使用一下命令检测配置和重新加载nginx:
检测配置:
nginx -t
重新加载:
nginx -s reload
6、优化nginx配置
在http{}中加入:
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
据官方文档所述,cache中的1m可以存放4000个session。
在配置https的虚拟主机server{}中加入:
keepalive_timeout 70;
7、客户端浏览器导入根证书和网站证书
打开证书管理工具:运行certmgr.msc命令(也可以在浏览器中导入证书)
将根证书ca.crt导入至受信任的根证书颁发机构,网站证书web1.crt导入到个人正式中。
然后在浏览器中输入https://domain,地址栏左侧会出现一把绿色的锁,如下图:
相关文章推荐
- Nginx https的安装配置以及证书的使用
- 使用阿里云https证书nginx安装配置详解
- 在linux(centos)使用openssl生成https证书并配置到nginx的实现过程
- nginx使用ssl模块配置HTTPS支持(自签证书)
- nginx配置https之使用第三方证书
- nginx中使用https时,证书的生成方式及配置
- nginx使用ssl模块配置HTTPS支持
- web服务器使用HTTPS,基于tomcat :nginx配置
- HTTPS-Linux服务器Nginx配置、Android客户端证书生成
- 为nginx配置https并自签名证书
- nginx使用ssl模块配置HTTPS支持
- nginx使用ssl模块配置HTTPS支持
- nginx使用ssl模块配置HTTPS支持
- nginx使用ssl模块配置HTTPS支持
- 使用Nginx为Leanote配置Https
- nginx配置:登录使用https
- 转自《https安全链接的配置教程:startSSl免费证书申请与nginx的https支持配置》
- nginx配置SSL证书(使用startSSL申请到的免费证书)
- Windows下Tomcat+nginx配置证书实现登录页https访问
- Windows下Tomcat+nginx配置证书实现登录页https访问