apache httpd基於openssl的https配置案例


1、安裝mod_ssl
yum -y install mod_ssl
安裝后生成的主配置文件是:/etc/httpd/conf.d/ssl.conf

2、弄一台服務器做CA
cd /etc/pki/CA/
(umask 077;openssl genrsa -out private/cakey.pem)

編輯更改默認配置,改動下面配置的原因是在簽證的時候就用我下面指定的默認值,免得每次都去輸入
vim ../tls/openssl.cnf
[ req_distinguished_name ]
countryName_default = CN
stateOrProvinceName_default = SiChuan
localityName_default = ChengDu
0.organizationName_default = Sige
organizationalUnitName_default = Tech

生成自簽證書
openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3655
Common Name (eg, your name or your server's hostname)  這個地方就是以后證書上顯示的頒發者

確保/etc/pki/CA/目錄下有這個3個目錄certs crl newcerts,沒有就建上
touch index.txt
echo 01 >serial

3、回到web服務器192.168.100.24上來
假設我把證書放到/etc/httpd/ssl下
mkdir /etc/httpd/ssl
cd /etc/httpd/ssl
生成密鑰
(umask 077; openssl genrsa 2048 > httpd.key)
生成證書頒發請求
openssl req -new -key httpd.key -out httpd.csr
填寫一定要和CA上的一致
Common Name (eg, your name or your server's hostname) []:www.qq.com 我假設給這個域名用

4、把httpd.csr發送到CA服務器上開始簽
openssl ca -in /tmp/httpd.csr -out /tmp/httpd.crt -days 36550

5、把簽好了的httpd.crt文件傳回web服務器192.168.100.24上來,然后編輯ssl.conf配置服務器使用這個證書
vim /etc/httpd/conf.d/ssl.conf
主要是改這里<VirtualHost _default_:443>,改成下面的樣子
<VirtualHost 192.168.200.24:443>
DocumentRoot "/var/www/qq"
ServerName www.qq.com:443
SSLCertificateFile /etc/httpd/ssl/httpd.crt #證書位置
SSLCertificateKeyFile /etc/httpd/ssl/httpd.key #私鑰位置

6、完成,驗證
httpd -t
systemctl restart httpd
客戶端驗證

如果要客戶端不提示不信任的證書,需要把CA服務器上的cacert.pem傳到Windows上改名為cacert.crt,雙擊安裝到受信任的根證書頒發機構就行了,以后就不會提示不信任


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM