开发者社区> 技术小甜> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

实验-----在centos6实现https

简介:
+关注继续查看

简述:

https:http over ssl  使用443端口

SSL会话的简化过程:

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

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

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

     如果信任给其发证书的CA:

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

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

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

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

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

(4) 客户端生成临时会话密钥(对称密钥),并使用服务器端的公钥加密此数据发送给服务器,完成密钥交换

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

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


实验:实现https

方式一、使用自签名证书的https

(1)yum -y install mod_ssl

安装完之后只要重新启动httpd服务就支持https了

(2) 测试:基于https访问

curl -k https://192.168.119.129 -k表示忽略证书进行ssl连接,不加-k无法获取网页

083217353ce67190715039e4439145ee.jpg

测试:curl --cacert cacert.pem https://www.magedu.com -CAfile cacert.pem

ebb42de7b491abe4804f4a830dff87df.jpg 

c8f404c515ab10d7c3f8bbb96abfaa2f.jpg 


方式二、向CA申请证书的https

1、yum -y install mod_ssl

2、创建私有CA

  具体步骤及含义详见博文:http://13150617.blog.51cto.com/13140617/1968017

本文只在这里列出所需命令及文件:

cd /etc/pki/CA

echo 00 > serial

touch index.txt

(umask 066;openssl genrsa -out private/cakey.pem 4096) 创建私钥文件

openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650 创建CA

0a02998bb1ad60b1df5a7caa8c6b67d6.jpg3、客户端申请证书

(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  生成证书签署请求

bae2ceca93587a2448a987167f68efff.jpg

scp /etc/httpd/conf.d/ssl/httpd.csr 192.168.119.128:/etc/pki/CA/  将签署请求发送给CA

4、CA签署证书,并且发放证书

openssl ca -in httpd.csr -out certs/httpd.crt -days 365  签署证书

scp certs/httpd.crt 192.168.119.129:/etc/httpd/conf.d/ssl/ 发放证书

scp cacert.pem 192.168.119.129:/etc/httpd/conf.d/ssl/  CA的证书文件

5、修改配置文件,使其支持使用ssl,及使用的证书

 vim /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证书

6、测试:在浏览器访问https://192.168.119.129

由于自己搭建的CA没有被信任,所以会有风险提示

6b3a5c206a96a75eeee4cedd6b719361.jpg 

fd91a2c74a37dca21056543f9ea193b1.jpg 

安装CA证书并信任:

0ce770887f0b3f2982f5081bae6a9817.jpg 

abc964f4567fff9176ecf8c4bbab8cf4.jpg

2a85d3adc226d79e587ff7942c1c9c0d.jpg

22796abc8515c6e92dc99749f07c1585.jpg

db4cd7f9f2c13ec0deacf50ff5e93cda.jpg

5eac41539e23decfdcd616a5fc698595.jpg

e0f415ed7bfd30327e3a4a49a6d67f1a.jpg

由于证书是颁发给www.magedu.com,所以url应该是https://www.magedu.com,那么需要加上DNS解析:

修改:C:\Windows\System32\drivers\etc\hosts

  添加一行 192.168.119.129 www.magedu.com

然后再访问:

  8e9a4fd7ce8891070c64485235693786.jpg


实验:http重定向到https

  vim /etc/httpd/conf.d/test.conf

   添加两行

  RewriteEngine on  启动重定向引擎

  RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]  

说明:301表示永久跳转,302表示临时跳转

测试:

24f3ea16d59ab07615ca6629559b449f.jpg 


实验:HSTS

HSTS:HTTP Strict Transport Security

   服务器端配置支持HSTS后,会在给浏览器返回的HTTP首部中携带HSTS字段。浏览器获取到该信息后,会将所有HTTP访问请求在内部做307跳转到HTTPS。而无需任何网络过程

HSTS preload list

   是Chrome浏览器中的HSTS预载入列表,在该列表中的网站,使用Chrome浏览器访问时,会自动转换成HTTPS。Firefox、Safari、Edge浏览器也会采用这个列表。

 

实现HSTS示例:

vim /etc/httpd/conf.d/test.conf

 Header always set Strict-Transport-Security "maxage=15768000"  以秒为单位

 RewriteEngine on

 RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]

测试:

d5742094a676a32c6ceabd83f1de1ad6.jpg 

j_0080.gif




















本文转自lc0108131451CTO博客,原文链接: http://blog.51cto.com/13150617/1974469,如需转载请自行联系原作者






版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
HTTPS协议
HTTPS协议介绍
0 0
使用https协议git push指令报错如何解决
基于https协议git push指令报错remote: Support for password authentication was removed on August 13, 2021. remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
0 0
计算机网络-应用层:自定制协议、知名协议HTTP&HTTPS
计算机网络-应用层:自定制协议、知名协议HTTP&HTTPS
0 0
【Ajax】全面了解http协议
【Ajax】全面了解http协议
0 0
【JavaWeb】之Http协议
【JavaWeb】之Http协议
0 0
详解 HTTP 协议
详解 HTTP 协议
0 0
商圈库_Http_协议 | 学习笔记
快速学习商圈库_Http_协议。
0 0
1、Http协议(概述、请求方法、状态码)
1、Http协议(概述、请求方法、状态码)
0 0
Web基础与HTTP协议
域名概念回顾: IP地址不易记忆,域名用于代替IP地址,方便记忆。 两台主机通信,是通过IP地址访问,所以需要将域名解析成IP地址。 早期使用Hosts文件解析域名,但随着域名的增多,工作量巨大,维护困难。 之后使用DNS (Domain Name Server,域名服务器) 进行域名解析。
0 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
CDN助力企业网站进入HTTPS时代
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载