作中經(jīng)常會(huì)遇到多個(gè)站點(diǎn)實(shí)現(xiàn)https訪問,并指向同一個(gè)網(wǎng)頁,本文將詳解如何在CentOS 環(huán)境下配置Apache多站點(diǎn)實(shí)現(xiàn)HTTPS訪問。
準(zhǔn)備工作
OS:CentOS release 6.8 (Final)
Web:Apache
安裝Apache
1、安裝Apache
[root@node1 ~]# yum install httpd -y
2、啟動(dòng)服務(wù)
[root@node1 ~]# service httpd start
Starting httpd: [ OK ]
[root@node1 ~]#
3、修改測試頁面
[root@node1 ~]# cat /var/www/html/index.html
<h1>
Apache Test Page~
</h1>
4、測試訪問
實(shí)現(xiàn)HTTPS訪問
1、安裝SSL模塊
[root@node1 ~]# yum install mod_ssl -y
2、檢測
[root@node1 ~]# cd /etc/httpd/modules/
[root@node1 modules]# ll | grep ssl
-rwxr-xr-x 1 root root 181872 Oct 20 2017 mod_ssl.so
3、上傳證書文件
這里我們可以到各大廠商去申請(qǐng)免費(fèi)證書,可滿足個(gè)人網(wǎng)站的需求,如企業(yè)網(wǎng)站,建議購買企業(yè)收費(fèi)證書;
[root@node1 ~]# cd /etc/httpd/
[root@node1 httpd]# mkdir ssl/default
[root@node1 httpd]# cd ssl/default
[root@node1 default]# rz
[root@node1 default]# ll
total 12
-rw-r–r– 1 root root 1683 Apr 13 22:26 1_root_bundle.crt
-rw-r–r– 1 root root 2008 Apr 13 22:26 2_domaintest.cn.crt
-rw-r–r– 1 root root 1678 Apr 13 22:26 3_domaintest.cn.key
[root@node1 default]#
4、修改配置
[root@node1 ~]# cd /etc/httpd/conf.d/
[root@node1 conf.d]# ls
README ssl.conf welcome.conf
[root@node1 conf.d]# vim ssl.conf
LoadModule ssl_module modules/mod_ssl.so
Listen 443
<VirtualHost *:443>
DocumentRoot “/var/www/html”
ServerName domaintest.cn
SSLEngine on
SSLCertificateFile /etc/httpd/ssl/default/2_domaintest.cn.crt
SSLCertificateKeyFile /etc/httpd/ssl/default/3_domaintest.cn.key
SSLCertificateChainFile /etc/httpd/ssl/default/1_root_bundle.crt
</VirtualHost>
配置文件參數(shù) | 說明 |
---|---|
LoadModule | 加載SSL模塊 |
Listen | 監(jiān)聽443端口 |
DocumentRoot | 網(wǎng)頁目錄 |
ServerName | 站點(diǎn)域名 |
SSLEngine on | 啟用SSL功能 |
SSLCertificateFile | 證書文件 |
SSLCertificateKeyFile | 私鑰文件 |
SSLCertificateChainFile | 證書鏈文件 |
5、重啟服務(wù)
[root@node1 ~]# httpd -t
Syntax OK
可以先試用httpd -t 檢測一下配置文件是否正確,然后再重啟服務(wù);
[root@node1 ~]# service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
6、檢測端口是否監(jiān)聽
[root@node1 conf.d]# ss -ntl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:80 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 *:443 *:*
[root@node1 conf.d]#
配置多個(gè)HTTPS站點(diǎn)
1、上傳證書文件
[root@node1 ~]# cd /etc/httpd/ssl/
[root@node1 ssl]# mkdir web
[root@node1 ssl]# cd web/
[root@node1 web]# rz
2、修改配置文件
LoadModule ssl_module modules/mod_ssl.so
Listen 443
NameVirtualHost *:443
# 第一個(gè)虛擬主機(jī)
<VirtualHost *:443>
DocumentRoot “/var/www/html”
ServerName domaintest.cn
SSLEngine on
SSLCertificateFile /etc/httpd/ssl/default/2_domaintest.cn.crt
SSLCertificateKeyFile /etc/httpd/ssl/default/3_domaintest.cn.key
SSLCertificateChainFile /etc/httpd/ssl/default/1_root_bundle.crt
</VirtualHost>
#第二個(gè)虛擬主機(jī)
<VirtualHost *:443>
DocumentRoot “/var/www/html”
ServerName web.domaintest.cn
SSLEngine on
SSLCertificateFile /etc/httpd/ssl/web/2_web.domaintest.cn.crt
SSLCertificateKeyFile /etc/httpd/ssl/web/3_web.domaintest.cn.key
SSLCertificateChainFile /etc/httpd/ssl/web/1_root_bundle.crt
</VirtualHost>
3、重啟服務(wù)
[root@node1 conf.d]# service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
[root@node1 conf.d]#
4、測試