1.说明

部署之前,先举例说明一下,方便理解。

比如我想去租房子,于是便在某网站上搜寻,结果联系的时候发现好多都是假的。

有看上的房子吧,又担心房东是个骗子。这个时候,我为了租房,找到了一家房屋中介公司,虽然收费,但是可以放心的租到房子。


基于openssl实现https访问_ca

2.部署

 CA server: 192.168.1.10

 http server: 192.168.1.200

  

 安装openssl 

 yum install openssl -y

 默认安装下面目录:

基于openssl实现https访问_openssl_02

创建证书的database文件index.txt和序列文件serial 

基于openssl实现https访问_openssl_03

2-1)在CA上生成自签证书 cacert.pem

    切换到CA server: 192.168.1.10

    2-1-1)创建私钥

       #(umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem)

            *说明:私钥的权限要设置到最低,可以使用子shell方式创建。

    2-1-2)生成自签证书(用于发放给个人用户)
       #openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem

      

  基于openssl实现https访问_openssl_04

   需要填写的内容,可以在配置文件中设置

        #vim /etc/pki/tls/openssl.cnf

  基于openssl实现https访问_https_05

        

  2-2-1)服务端请求生成证书

   切换到http server:192.168.1.200

   

   #yum install mod_ssl -y     #用于https的配置

   #mkdir /etc/httpd/ssl

   #cd /etc/httpd/ssl

   #(umask 077;openssl genrsa -out httpd.key)  #生成私钥

   #openssl req -new -key httpd.key -out httpd.csr  #生成证书请求

 *注意:红色框中填写的内容要与在CA上设置内容一致(参考2-1-2)),×××框中的域名就是CA要认证的域名。

   

   基于openssl实现https访问_openssl_06

   2-2-2)将生成的httpd.csr证书请求文件传到CA server,由CA发送证书。

   #pwd

   /etc/httpd/ssl

   #scp httpd.csr root@192.168.1.10:/tmp

   2-2-3)切换到CA server,进行证书分发

   #openssl ca -in /tmp/httpd.csr -out /tmp/httpd.crt -days 365

   将生成的证书发送给http server

   #scp /tmp/httpd.crt root@192.168.1.200:/etc/httpd/ssl

   2-2-4)切换到http server查看

   #ls /etc/httpd/ssl

   httpd.crt  httpd.csr  http.key

   在/etc/httpd/conf.d/ssl.conf修改私钥和证书的存储位置,重启apache,查看443端口

   SSLCertificateKeyFile /etc/httpd/ssl/httpd.key

   SSLCertificateFile /etc/httpd/ssl/httpd.crt

   #netstat -tunlp |grep httpd

   tcp  0  0 0 0.0.0.0:80  0.0.0.0:*     LISTEN      15608/httpd

   tcp  0  0 0.0.0.0:443   0.0.0.0:*     LISTEN      15608/httpd

2-3)客户端下载CA上的证书 cacert.pem文件 ,改名为cecert.crt.双击安装证书。

   在本机hosts中做域名映射

   192.168.1.200 www.slitobo.com

   浏览器访问即可;

 

基于openssl实现https访问_https_07

基于openssl实现https访问_openssl_08

  

   基于openssl实现https访问_https_09