您的位置:首页 > 理论基础 > 计算机网络

web服务之https

2014-04-09 17:57 232 查看
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事务





(2)重要概念知识介绍

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


X509.3证书格式

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


PKI (Public Key Infrastructure)

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


客户端验证服务器证书

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


服务器配置https

( 1)确保mod_ssl模块加载



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

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

创建服务器自己的私钥

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




服务器自我生成CA证书

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




创建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




3、 服务器给客户端签署证书 生成 httpd.crt
#openssl ca  -in httpd.csr -out httpd.crt -days 3665




4、查看密钥和证书



( 4 )编辑配置文件
1、打开拓展配置文件及mod_socache模块

# vim /etc/httpd/httpd.conf






2、编辑/etc/httpd/extra/httpd-ssl.conf
设置客户端证书和密钥路径



设置基于ssl的虚拟主机



3 重启httpd服务
#httpd -t  测试配置文件是否有错误
#service httpd restart


( 5 )客户端测试
https://www.a.com:443



客户端导入CA证书

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




客户端重新测试 https://www.a.com:443




( 6 )查看证书信息





( 7 )linux客户端测试

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






如有瑕疵,请及时指出~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  https