服务器IP版本
CA192.168.0.100/ca.abc.comCentOS7
httpd192.168.0.110/www.abc.comCentOS6.7


1. 为httpd服务器申请数字证书

1.1 创建私有CA(CA服务器)

~]# cd /etc/pki/CA/
CA]# (umask 077;openssl genrsa -out private/cakey.pem 2048)
#创建私有CA


wKioL1cXMDShBw15AAFaNQ4ixSY561.jpg

CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 7300
#生成自签证书,Ctrl+Backspace可进行修改
#自签证书依次填入:CN、Jiangsu、城市、公司、Ops、ca.abc.com、邮箱(可省略)
CA]# touch index.txt
CA]# echo 01 > serial



1.2 创建证书签署请求(httpd服务器)

在/etc/httpd/目录下创建ssl,进入ssl

ssl]# (umask 077;openssl genrsa -out httpd.key 1024)
#生成私钥


wKioL1cXMo7Ruxq2AAEQhbF9naI142.jpg

ssl]# openssl req -new -key httpd.key -out httpd.csr(创建证书签署请求)
#注:请求信息中hostname为www.abc.com,必须与访问域名一致。
ssl]# scp httpd.csr CA_ServerIP:/tmp/(发送签署请求给CA服务器)



1.3 CA签证(CA服务器)

~]# cd /etc/pki/CA/
CA]# openssl ca -in /tmp/httpd.csr -out certs/httpd.crt(签署发送来的请求证书)
CA]# scp certs/httpd.crt HTTPD_ServerIP:/etc/httpd/ssl(将证书发送给客户端)



2. 配置httpd服务器支持ssl及使用的证书

~]# yum -y install mod_ssl(安装完即通过配置文件加载模块)
~]# vim /etc/httpd/conf.d/ssl.conf


DocumentRoot "/var/www/html"
#取消注释,如有需要修改当前路径
ServerName www.abc.com:443
#取消注释,并修改域名
SSLCertificateFile /etc/httpd/ssl/httpd.crt
#修改默认指定的SSL证书存放位置
SSLCertificateKeyFile /etc/httpd/ssl/httpd.key
#修改默认指定的SSL私钥文件存放位置

wKiom1cXNjCQbC1gAAArRE8N8KE046.jpg

其他功能注解(无须修改):

SSLEngine on 
#开启SSL功能
SSLProtocol all -SSLv2 
#支持SSL所有协议,但不支持SSLv2
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA 
#支持的SSL加密方式,!表示不支持
~]# httpd -t(测试语法)
~]# service httpd restart(改变监听端口)


因为指向默认路径,故同时支持http和https,若只允许https,关闭Listen 80;但客户访问一般只会访问http,所以不能简单关闭80端口,需做URL重定向。


3. 测试基于https访问响应的主机

~]# openssl s_client
~]# openssl s_client -connect www.abc.com:443 -CAfile /etc/pki/CA/cacert.pem(CA服务器上验证)


其他客户端浏览器访问https需导入cacert.pem证书,否则为不安全的连接