https

   

https:超文本传输安全协议(Hypertext Transfer Protocol Secure)
网景在1994年创建了https

   

https就是使用了ssl/tls协议通信的http
#SSL/TLS当前使用的版本
#SSL:Secure Socket Layer       v3版
#TLS:Transport Layer Security  v1版
SSL/TLS的重要性
#(1) 所有信息都是加密传播,第三方无法窃听。
#(2) 具有校验机制,一旦被篡改,通信双方会立刻发现。
#(3) 配备×××书,防止身份被冒充。


https与http的区别

     

http    文本协议           tcp:80端口   应用层
https   二进制格式的协议   tcp: 443端口  传输层


   (1) http事务与加密的https事务


        wKiom1NFAZrT4MvjAAI0X5XFUUg389.jpg


  (2)重要概念知识介绍  

   

    SSL会话

ssl握手要完成的工作:
  交换协议版本号
  选择但双方都支持的加密方式
  对两端实现身份验证
  密钥交换
注意:SSL会话基于IP地址进行:不支持在基于FQDN的虚拟主机上实现


   

  X509.3证书格式


   

证书格式的版本号
           证书序列号
           证书签名算法
           证书颁发者
           有效期
           持有者的名称
           持有者的公钥
           CA的ID
           持有者的ID
           其它扩展信息
               基本约束
               证书策略
               密钥的使用限制
           CA签名

 

   PKI (Public Key Infrastructure)


   

端实体(申请者)
          注册机构(RC)
          签证机构(CA)-->签证机构(CA)
          证书撤消列表(CRL)发布机构
          证书存取库


     

  客户端验证服务器证书

   

日期检测:证书是否在有效期内
            证书颁发者的可信度:
            证书的签名检测:
            持有者的身份检测:

 


服务器配置https


 ( 1)确保mod_ssl模块加载

              wKiom1NFBRewptCAAABiNkjbkCU963.jpg    

               如果没有加载该模块则  #yum -y install mod_ssl*  

               


      (2) 服务器自建CA (自我成为CA签发者)

             

              创建服务器自己的私钥  

#cd /etc/pki/CA  进入CA目录
#(umask 077;openssl genrsa 2048 > private/cakey.pem) 创建服务器私钥

      wKiom1NFBcrySTcoAACzE8Ji1S0854.jpg

               

      服务器自我生成CA证书  


#openssl req -new -x509 -key /private/cakey.pem -out cacert.pem -days 3655

      wKiom1NFBjaSDz8BAANNDm_5wb4916.jpg

 

       创建index.txt (索引文件数据库),serial(签证编号)


#touch index.txt serial crlnumber
# echo 01 > serial


  ( 3 ) 客户端申请CA 我们同时使用服务器做客户端

         

       

    1、生成客户端自己的私钥 httpd.key        

#  cd /etc/httpd      
#  (umask 077;openssl genrsa 1024 >httpd.key)

     

    2、客户端生成证书签署请求 httpd.csr          

#cd /etc/httpd
#openssl req -new -key httpd.key -out httpd.csr

        wKioL1NFCKaRQpMlAAO6HFH34Sg090.jpg    

  3、 服务器给客户端签署证书 生成 httpd.crt                  

#openssl ca  -in httpd.csr -out httpd.crt -days 3665

       wKioL1NFCWKCsCz9AAPRW34DHbI964.jpg

       

   4、查看密钥和证书

   wKioL1NFCtzwz9ZJAABm0eJoWF0422.jpg    

 ( 4 )编辑配置文件

     1、打开拓展配置文件及mod_socache模块

               

# vim /etc/httpd/httpd.conf

       wKiom1NFDCDjrMJPAABVVIxPIXc990.jpg

       wKiom1NFDDmCU0l5AABXLCFGkcc267.jpg      

     2、编辑/etc/httpd/extra/httpd-ssl.conf

       设置客户端证书和密钥路径

      wKioL1NFDKCj1OPMAAF1NPu_s9Q501.jpg        

       设置基于ssl的虚拟主机

       wKiom1NFDOuQA8JTAADywLQzYIg136.jpg

    3 重启httpd服务    

#httpd -t  测试配置文件是否有错误
#service httpd restart


  ( 5 )客户端测试

       https://www.a.com:443

       wKiom1NFDcOg5_iiAAHGpwXzivw164.jpg

    客户端导入CA证书

     

#把/etc/pki/CA/cacert.pem这个CA证书拷到window上,改名为cacert.crt,安装此证书

    wKiom1NFDmei8kpHAALNoG2A_Pw799.jpg

    客户端重新测试

      https://www.a.com:443


      wKioL1NFDojj-nYDAAB0NebRvPw101.jpg



 ( 6 )查看证书信息

   

   wKiom1NFDv3xoUdFAAI0juNQXd8616.jpg

 

  ( 7 )linux客户端测试    

#openssl s_client -quiet -connect 172.16.251.183:443 -CAfile /etc/pki/CA/cacert.pem

   

   wKioL1NFGdTRLfk2AAJhqYOmCT0767.jpg  



如有瑕疵,请及时指出~