Nginx配置https访问

转载 2015年11月20日 15:34:55

1.      前期的准备工作:

安装openssl和nginx的https模块

cd  ~/
mkdir ssl
cd ssl
mkdir demoCA
cd demoCA
mkdir newcerts
mkdir private
touch index.txt
echo '01' > serial

2.      制作CA证书(这个是信任的起点,根证书,所有其他的证书都要经过CA的私钥签名)。

生成 CA私钥: ca.key

openssl genrsa -des3 -out ca.key 2048

这样是生成rsa私钥,`des3`算法,openssl格式,2048位强度。`ca.key`是密钥文件名。为了生成这样的密钥,需要一个至少四位的密码。

另外可以通过以下方法生成没有密码的key:

opensslrsa -in ca.key -out ca_decrypted.key

生成 CA根证书的公钥 ca.crt

openssl req -new -x509 -days 3650 -key ca.key -out ca.crt

3.      制作网站的https证书,并用CA签名认证。

假设我们需要为 test.com 域名制作证书,先生成 test.com的证书私钥 test.com.pem。

   命令:

openssl genrsa -des3 -out test.com.pem 1024

   生成无密码的私钥:

openssl rsa -in test.com.pem -out test.com.key

生成 csr 签名请求:

openssl req -new -key test.com.pem -out test.com.csr

这里需要输入国家,地区,组织,email等。最重要的是**common name**,可以写你的名字或者域名。如果为了 https 申请,这个必须和域名一样,即,这里要写test.com,否则会引发浏览器警报,这里可以用 *.test.com 来做泛域名证书。

最后要用CA证书进行签名:

openssl ca -policy policy_anything -days 1460 -cert./demoCA/ca.crt -keyfile ./demoCA/ca.key -in test.com.csr -out test.com.crt

把 ca.crt 的内容追加到 test.com.crt后面,因为有些浏览似乎不支持:

cat demoCA/ca.crt >> test.com.crt

4.      nginx配置

server {
  listen 443;
  server_name test.com www.test.com;
 
  root html;
  index index.html index.htm;
 
  ssl on;                                     #开启ssl
  ssl_certificate /PATH/TO/test.com.crt;    #服务器证书位置
  ssl_certificate_key/PATH/TO/test.com.key;  #服务器私钥
 
  ssl_session_timeout 5m;                     #session有效期,5分钟
 
  ssl_protocols SSLv3 TLSv1TLSv1.1 TLSv1.2;          #ssl协议
  ssl_ciphers"HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";  #ssl加密算法 
  ssl_prefer_server_cipherson;
 
  location / {
    try_files $uri $uri/ =404;
  }      
}


1.      其他,其实很多时候,并不需要加密的 key,所以像这面这么做就好了。

命令如下:

 cd ~/
 mkdir ssl
 cd ssl
 mkdir demoCA
 cd demoCA
 mkdir newcerts
 mkdir private
 touch index.txt
 echo '01' > serial
 openssl genrsa -out ca.key 2048
 openssl req -new -x509 -days 3650 -keyca.key -out ca.crt
 cd ..
 openssl genrsa -out test.com.key 2048
 openssl req -new -key test.com.key -out test.com.csr
 openssl ca -policy policy_anything  -days1460 -in test.com.csr -out test.com.crt -cert ./demoCA/ca.crt -keyfile./demoCA/ca.key

原文文章链接:http://www.tuicool.com/articles/NrmE3e

相关文章推荐

怎么让SSL证书部署在服务器上更加完美安全

最近对SSL证书研究过后。突然有点小小的xind

nginx配置ssl证书实现https和http共存访问

由于自己生成的证书不受浏览器信任,所以需要到第三方ssl证书提供商处购买,在购买ssl证书时,需要提供一个自己的web服务器生成的csr密码。 生成csr的步骤: ①:生成RSA密钥:  openss...
  • eclothy
  • eclothy
  • 2015年05月23日 10:29
  • 8712

NGINX之——配置HTTPS加密反向代理访问–自签CA

出于公司内部访问考虑,采用的CA是本机Openssl自签名生成的,因此无法通过互联网工信Root CA验证,所以会出现该网站不受信任或安全证书无效的提示,直接跳过,直接访问即可! HTTPS的原理和访...

nginx https配置后无法访问,可能防火墙在捣鬼

同事发现nginx配置后https 无法访问,我帮忙解决的时候从以下出发点1.防火墙未开放443端口 2.配置出错 于是就 netstat -anp 查看防火墙开的端口 发现已经在监听了,那肯...

Windows下Nginx配置SSL实现Https访问(包含证书生成)

Windows下Nginx配置SSL实现Https访问(包含证书生成) Windows下Nginx配置SSL实现Https访问(包含证书生成)   首先要说明为什么要实现https?   H...
  • oufua
  • oufua
  • 2017年01月12日 10:26
  • 2256

Nginx配置SSL实现Https访问

步骤: 1. 安装Openssl   下载地址:http://slproweb.com/products/Win32OpenSSL.html (根据系统选择32位或者64位版本下载安装)。   ...

centos7下nginx的安装和https配置多端口访问

1、首先检查是否安装了pcre,openssl,gzip等 [root@iZ286yyopd3Z nginx]# rpm -qa | grep "pcre" pcre-8.32-15.el7.x86_...

Linux下nginx配置https协议访问的方法

一、配置nginx支持https协议访问,需要在编译安装nginx的时候添加相应的模块--with-http_ssl_module 查看nginx编译参数:/usr/local/nginx/...

Centos6.5服务器环境搭建之安装Nginx以及Https访问方式的配置

这个应该是最简单的安装方式了,之前在网上找了很多的文章,步骤多,还没有安装成功,甚是郁闷,最后去Nginx官网上直接看,找到下面的安装方式。也发现一个问题,有时候就是觉得官网是英文,就不想去看,就直接...

linux 配置nginx https 访问认证

1   首先查看服务器有没有安装openssl 支持包,           rpm -qa | grep  openssl  如果有结果输出,说明已经有了openssl 包的支持 如果没有结果...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Nginx配置https访问
举报原因:
原因补充:

(最多只允许输入30个字)