服務器 | 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證書,否則爲不安全的連接