码迷,mamicode.com
首页 > Web开发 > 详细

https的实现

时间:2017-10-22 00:08:31      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:https的实现

首先我们说俩句https

https:http over ssl 

SSL会话的简化过程

    (1) 客户端发送可供选择的加密方式,并向服务器请求证书

    (2) 服务器端发送证书以及选定的加密方式给客户端

    (3) 客户端取得证书并进行证书验证

    如果信任给其发证书的CA

    (a) 验证证书来源的合法性;用CA的公钥解密证书上数字签名

    (b) 验证证书的内容的合法性:完整性验证

    (c) 检查证书的有效期限

    (d) 检查证书是否被吊销

    (e) 证书中拥有者的名字,与访问的目标主机要一致

    (4) 客户端生成临时会话密钥(对称密钥),并使用服务器端的公钥加密

    此数据发送给服务器,完成密钥交换

    (5) 服务用此密钥加密用户请求的资源,响应给客户端

     注意:SSL是基于IP地址实现,单IP的主机仅可以使用一个https虚拟主机

CA: 107 centos7  web服务器:106 centos6,客户端:centos5


  1. 服务器操作centos7

1CA

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

openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem  -days 3000

touch /etc/pki/CA/index.txt

echo 00 > /etc/pki/CA/serial

 

      2.Centos6操作: client 申请证书

创建一个目录专门放证书:mkdir /etc/httpd/conf.d/ssl/

(umask 066;openssl genrsa -out /etc/httpd/conf.d/ssl/httpd.key  2048 )

openssl req -new  -key  /etc/httpd/conf.d/ssl/httpd.key  -out  /etc/httpd/conf.d/ssl/httpd.csr

scp /etc/httpd/conf.d/ssl/httpd.csr  192.168.37.107:/etc/pki/CA/

 

     3. 颁发证书 centos7操作

openssl ca -in  /etc/pki/CA/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 300

然后就会发现证书文件已经存在

现在可以把证书拷给客户端了:

    scp certs/httpd.crt  192.168.37.106:/etc/httpd/conf.d/ssl/   

    scp cacert.pem  192.168.37.106:/etc/httpd/conf.d/ssl/

 

 

补充:CA也是可以修改配置文件的

技术分享

centos6里确认证书已经存在:cd /etc/httpd/conf.d/ssl

技术分享

                4. 现在可以在配置http的服务了

安装包:yum -y install mod_ssl

修改配置文件:/etc/httpd/conf.d/ssl.conf

修改路径:

SSLCertificateKeyFile /etc/httpd/conf.d/ssl/httpd.key

SSLCertificateFile /etc/httpd/conf.d/ssl/httpd.crt

SSLCACertificateFile /etc/httpd/conf.d/ssl/cacert.pem(上级CA的路径)

重新加载服务:servicehttpd reload

现在就可以访问了:在客户端

技术分享

现在依然不信任我们自己搭建的CAso 我们可以自己把它导进去:

技术分享

技术分享

技术分享

技术分享

 

hosts文件中添加一个域名解析(windowshosts

技术分享

 

                5. 测试基于https访问相应的主机

1.curl--cacert cacert.pem https://www.magedu.com/

2.openssl s_client -connect www.magedu.com:443   -CAfile /etc/pki/CA/cacert.pem

然后输入:

技术分享

 

技术分享

 

 

http重定向https

v http请求转发至httpsURL

v 重定向

Redirect [status] URL-path URL

v status状态:

ü Permanent:Returns a permanent redirect status

(301) indicating that the resource has moved

permanently

ü Temp:Returns a temporary redirect status (302).

This is the default

v 示例:

Redirect temp / https://www.magedu.com/

 

RewriteEngine on重写引擎

 

位置:/etc/httpd/conf.d/httpd.conf

技术分享

然后重载。

位置:/etc/hosts

技术分享

测试:

技术分享

 

第二种方法:

位置:

技术分享

然后重载:service httpd reload

位置:/etc/hosts

技术分享

测试:

技术分享


本文出自 “shell脚本” 博客,转载请与作者联系!

https的实现

标签:https的实现

原文地址:http://menglin.blog.51cto.com/13298759/1974906

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!