Apache 配置多個HTTPS站點
阿新 • • 發佈:2018-05-10
Apache SSL HTTPS 工作中經常會遇到多個站點實現https訪問,並指向同一個網頁,本文將詳解如何在Centos 環境下配置Apache多站點實現HTTPS訪問。
準備工作
OS:CentOS release 6.8 (Final)
Web:Apache
安裝Apache
1、安裝Apache
[root@node1 ~]# yum install httpd -y
2、啟動服務
[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、測試訪問
實現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、上傳證書文件
這裏我們可以到各大廠商去申請免費證書,可滿足個人網站的需求,如企業網站,建議購買企業收費證書;
[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>
配置文件參數 | 說明 |
---|---|
LoadModule | 加載SSL模塊 |
Listen | 監聽443端口 |
DocumentRoot | 網頁目錄 |
ServerName | 站點域名 |
SSLEngine on | 啟用SSL功能 |
SSLCertificateFile | 證書文件 |
SSLCertificateKeyFile | 私鑰文件 |
SSLCertificateChainFile | 證書鏈文件 |
5、重啟服務
[root@node1 ~]# httpd -t
Syntax OK
可以先試用httpd -t 檢測一下配置文件是否正確,然後再重啟服務;
[root@node1 ~]# service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
6、檢測端口是否監聽
[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]#
7、測試訪問
- 建議使用google瀏覽器進行測試訪問,f12查看,會顯示“This page is secure (valid HTTPS).”,說明證書配置正確;
配置多個HTTPS站點
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 # 第一個虛擬主機 <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> #第二個虛擬主機 <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、重啟服務
[root@node1 conf.d]# service httpd restart Stopping httpd: [ OK ] Starting httpd: [ OK ] [root@node1 conf.d]#
4、測試訪問
到這裏,Apache多站點https就實現了~
Apache 配置多個HTTPS站點