服务器 | IP | 版本 |
CA | 192.168.0.100/ca.abc.com | CentOS7 |
httpd | 192.168.0.110/www.abc.com | CentOS6.7 |
1. 为httpd服务器申请数字证书
1.1 创建私有CA(CA服务器)
~]# cd /etc/pki/CA/
CA]# (umask 077;openssl genrsa -out private/cakey.pem 2048)(创建私有CA)
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)(生成私钥)
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私钥文件存放位置
其他功能注解(无须修改):
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证书,否则为不安全的连接