SSL会话的简化过程
(1) 客户端发送可供选择的加密方式,并向服务器请求证书
(2) 服务器端发送证书以及选定的加密方式给客户端
(3) 客户端取得证书并进行证书验证如果信任给其发证书的CA(a) 验证证书来源的合法性;用CA的公钥解密证书上数字签名
(b) 验证证书的内容的合法性:完整性验证
(c) 检查证书的有效期限
(d) 检查证书是否被吊销
(e) 证书中拥有者的名字,与访问的目标主机要一致(4) 客户端生成临时会话密钥(对称密钥),并使用服务器端的公钥加密此数据发送给服务器,完成密钥交换
(5) 服务用此密钥加密用户请求的资源,响应给客户端
注意:SSL是基于IP地址实现,单IP的主机仅可以使用一个https虚拟主机
(1) 为服务器申请数字证书
CA和证书颁发
mkdir /data/ssl/ -pv
cd /data/ssl/
( umask 066;openssl genrsa 2048 > cakey.pem )
openssl req -new -x509 -key cakey.pem -out cacert.pem -days 3650
openssl req -newkey rsa:1024 -nodes -keyout httpd.key > httpd.csr
openssl x509 -req -in httpd.csr -CA cacert.pem -CAkey cakey.pem -set_serial 01 > httpd.crt
scp -r /data/ssl 192.168.64.150:/etc/httpd/conf.d
httpd服务器配置
yum install mod_ssl #HTTPS依赖此模块
vim /etc/httpd/conf.d/ssl.conf
DocumentRoot "/data/site1/"
ServerName www.a.com:443
<directory /data/site1>
require all granted
</directory>
SSLCertificateFile /etc/httpd/conf.d/ssl/httpd.crt
SSLCertificateKeyFile /etc/httpd/conf.d/ssl/httpd.key
SSLCACertificateFile /etc/httpd/conf.d/ssl/cacert.pem
#SSLCertificateFile /etc/pki/tls/certs/localhost.crt
#SSLCertificateKeyFile /etc/pki/tls/private/localhost.key #需注释掉
sz /etc/httpd/conf.d/ssl/cacert.pem
原文:https://blog.51cto.com/9019400/2393459