nginx系列-05-基于openSSL配置HTTPS

[TOC]

1 说明

此处介绍在CentOS6.8系统上,使用openSSL建立私有CA,并颁发证书,以配置 nginx 支持https。

2 创建私有CA(私有CA生成自签署的证书)

这部分的相关内容请看本人的另一篇文章
http://blog.csdn.net/hylexus/article/details/53058135
http://www.jianshu.com/p/7ad4846a2f38

或者此处用真正互联网通用的证书也是一样的。

3 为nginx配置SSL支持

# 此处在ssl目录下进行操作,位置按自己的需要吧
[root@h1 ssl]# pwd
/etc/nginx/ssl

3.1 生成私钥

[root@h1 ssl]# (umask 077;openssl genrsa -out nginx.key 1024)

3.2 生成证书颁发请求

# 按要求填写相关信息即可
[root@h1 ssl]# openssl req -new -key nginx.key -out nginx.csr

3.3 颁发证书

此处使用私有CA颁发,并且本人的CA和httpd在同一台主机上。

# 由于此处CA和httpd在同一台主机上,所有直接将颁发的证书放置到了/etc/nginx/ssl/nginx.crt目录
[root@h1 ssl]# openssl ca -in /etc/nginx/ssl/nginx.csr -out /etc/nginx/ssl/nginx.crt -days 365

3.4 nginx 配置

未启用https前的虚拟主机简单配置如下:

server{
    listen  80;
    server_name h3.hylexus.tech;
    access_log  /logs/aaa.access.log;
    location /{
        index index.html;
        root /web/html/h3.hylexus.tech;
    }
}

注意修改hosts文件,将域名加进去

[root@h1 conf.d]# cat /etc/hosts
# ………………
127.0.0.1       localhost.localdomain localhost h3.hylexus.tech
192.168.161.128 h1 h3.hylexus.tech
# ………………

先确保使用http协议能访问的虚拟主机之后再继续下文。

先用http协议访问 http://h3.hylexus.tech试试。成功后继续下文。

启用HTTPS

server{
    # 同时支持http和https
    listen  80;
    listen  443 ssl;
    server_name h3.hylexus.tech;
    access_log  /logs/aaa.access.log;

    keepalive_timeout   70;

    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers         AES128-SHA:AES256-SHA:RC4-SHA:DES-CBC3-SHA:RC4-MD5;
    ssl_certificate     /etc/nginx/ssl/nginx.crt;
    ssl_certificate_key /etc/nginx/ssl/nginx.key;
    ssl_session_cache   shared:SSL:10m;
    ssl_session_timeout 10m;

    location /{
        index index.html;
        root /web/html/h3.hylexus.tech;
    }
}

3.5 访问

https://h3.hylexus.tech

记得修改hosts文件,因为这个域名纯粹是瞎编的……

当然浏览器会告警说证书来源不可信之类的,不告警才怪呢……除非你的证书是互联网通用的而不像我们这里自己给自己颁发的……

你可能感兴趣的:(nginx系列-05-基于openSSL配置HTTPS)