1.演示环境操作系统CentOS 6虚拟机环境,IP=172.16.249.209安装httpd服务版本:httpd-2.2.rpm2.CA、https签证、https中的配置站点信息、ssl.conf信息需要根据实际情况配置,且配置路径信息一致3.本篇文档为简要演示,上述具体站位置零散不做截图,配置前需了解httpd配置,不做赘述
工具/原料
httpd-2.2.rpm
CentOS 6
https概述
1、HTTPS(Hyper TextTransfer Protocol over Secure Socket Layer)以安全为目标的HTTP通道,简单讲是HTTP的安全版,用于安全的HTTP数据传输HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。,加密后数据为二进制文本表示:https://
2、端口&协议:443/tcp HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)ssl: v3、tls: v1注意:SSL会话是基于IP地址创建;所以单IP的主机上,仅可以使用一个https虚拟主机;即一个IP只能一个使用443端口,但是能多个80端口
搭建https服务器
1、安装http程序,配置站点# yum install-y httpd# vim/etc/httpd/conf/httpd.conf
2、为服务器申请数字证书;猾诮沓靥(1)CA服务器端:创建私有证书颁发机构~]# cd /etc/pki/CA~]#(umask 077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096)~]#openssl req -new-x509 -key /etc/pki/CA/private/cakey.pem -out/etc/pki/CA/cacert.pem -days 3655~]#mkdir -pv /etc/pki/CA/{certs,crl,newcerts}~]#touch /etc/pki/CA/{serial,index.txt}~]#echo 01 > /etc/pki/CA/serial(2)https服务器端:发起创建证书请求~]#mkdir/etc/httpd/ssl ~]# cd /etc/httpd/ssl~]#(umask 077; openssl genrsa -out /etc/httpd/ssl/https.key 2048)~]#openssl req -new-key /etc/httpd/ssl/https.key-out /etc/httpd/ssl/https.csr -days 365(3)将https服务器的请求生成文件发送给CA进行签署操作~]# scp… … /tmp~]# openssl ca -in/tmp/https.csr -out /etc/pki/CA/certs/https.crt -days 365(4)将签署后的证书返回给https服务器即可使用~]# scp… …
3、配置httpd支持使用ssl,及使用的证书;(1)安装并查看mod_ssl模块 [root@localhost~]# yum -y install mod_ssl [root@localhost~]# rpm -ql mod_ssl [root@localhost~]# httpd -M | grep ssl
4、修改配置文件:/etc/httpd/conf.d/ssl.conf[root@localhost ~]#vim/etc/httpd/conf.d/ssl.conf修改部分配置 DocumentRoot定义默认虚拟主机的文档页面 ServerName定义默认虚拟主机的服务名 SSLCertificateFile定义证书文件路径 SSLCertificateKeyFile定义私钥文件注释: 1)/etc/httpd/conf.d/ssl.conf中定义启动mod_ssl.so模块,且定义监听端口
5、<VirtualHost _default_:443>定义默认虚拟主机,当根据FQDN请求有多个站点的主机,均未找到时候会返回默认主机定义的页面。
6、测试基于https访问相应的主机; # openssls_client [-connect host:port] [-cert filename] [-CApath directory] [-CAfilefilename] openssl s_client-connect 172.16.249.209:443
浏览器测试
1、访问https://172.16.249.209:443此时会报错因为CA为信任的证书不发机构,所以需要导入CA的证书
2、网站本身通信已经经过了SSL加密
3、让浏览器信任CA所颁发的证书 (1)复制CA的证书/etc/pki/CA/cacert.pem到本地,将其改为.crt格式 (2)具体的浏览器不同,注意Chorm浏览器可能本身的安全等级过高
注意问题
1、献皲咝犴删除测试页面/etc/httpd/conf.d/welcome.conf2.在</VirtualHost>容器内只能定义一次,位置可在/etc/httpd/conf.d/ssl.conf中,或者/etc/httpd/conf.d/*自定义一个ip只能建立一个基于虚拟主机的https3.本机Windows的浏览器基于域名测试,需要在C:\Windows\System32\drivers\etc\host文件中定义DNS指向4.https加密对于前端的负载均衡器压力较大5.本次配置完成后需要指定443端口才能访问https,因为默认访问的是80端口。生产环境中若偶像访问80端口时候自动跳转到443端口,需定义URL重定向来使得访问80端口时候自动跳转到443端口6.不导入CA,也能够建立ssl通信