前几篇博客分别实现了nginx的http访问和apache的https加密连接,那么现在就将它们组合在一起,实现基于nginx的https加密连接。

一、环境准备

    这次我还是准备了两个虚拟机和一台真实计算机,其中一台IP为172.16.128.7的主机作为服务器,安装nginx软件提供https服务,另外一台IP为172.16.128.8的主机作为CA,进行证书验证,最后的真实计算机用来测试https是否配置成功。

二、安装nginx

    参考:http://11142243.blog.51cto.com/11132243/1972367

    不过这里只是为了验证https的功能,所以下面简易的创建一个网页出来:

        上传并编译nginx:

wKioL1nklzzDiaHeAAA1q85SUQQ419.png-wh_50

    安装完成之后直接使用“nginx”命令运行nginx服务,之后,我们就可以在真实计算机上通过浏览器访问“172.16.128.7”,得到以下画面(这是nginx的自带页面,在“/local/nginx/html/”里边):

wKiom1nkoiKSrnpZAABuMl5ICYg177.png-wh_50

三、制作认证

    参考:http://11142243.blog.51cto.com/11132243/1972413

    进入目录“cd /etc/pki/CA”然后执行如图命令(在172.16.128.8(CA)上):

wKioL1nlhgyjg4w8AAEEN9dXAZ8248.png-wh_50

    回到“172.16.128.7”(服务器)上,执行如图操作:

wKiom1nliNLBwCrUAADlDbP_IzI134.png-wh_50

四、更改nginx的ssl配置

    使用下面的命令更改nginx的配置文件:

~]# vim /etc/nginx/nginx.conf

    在监听端口的位置上加上两行内容,如图所示:

wKiom1nli87ytIXQAACE6zV3aFs690.png-wh_50wKioL1nliRiDyfKvAACNnnAx0go929.png-wh_50

    内容如下:

        listen       443 ssl;   #在这里加上ssl,或者再加一行“ssl on;”效果一样,这样是简写
        ssl_certificate     /usr/local/nginx/ssl/myweb.test.com.crt;
            #这两个目录的路径是保存私钥和CA验证之后返回的证书的目录
        ssl_certificate_key /usr/local/nginx/ssl/nginx.key;

    更改完配置之后保存退出,并重新加载配置文件之后,在真实主机的浏览器中打开,就可以看到下面这个页面了:

wKiom1nli87hWnTsAADTH8IRLtY470.png-wh_50