关闭

Nginx配置https访问

标签: httpsnginx
284人阅读 评论(0) 收藏 举报
分类:

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

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:21391次
    • 积分:352
    • 等级:
    • 排名:千里之外
    • 原创:13篇
    • 转载:5篇
    • 译文:0篇
    • 评论:9条
    文章分类
    最新评论