工做中常常會遇到多個站點實現https訪問,並指向同一個網頁,本文將詳解如何在Centos 環境下配置Apache多站點實現HTTPS訪問。html
OS:CentOS release 6.8 (Final)
Web:Apachenode
一、安裝Apacheweb
[root@node1 ~]# yum install httpd -y
二、啓動服務vim
[root@node1 ~]# service httpd start Starting httpd: [ OK ] [root@node1 ~]#
三、修改測試頁面瀏覽器
[root@node1 ~]# cat /var/www/html/index.html <h1> Apache Test Page~ </h1>
四、測試訪問
dom
一、安裝SSL模塊ide
[root@node1 ~]# yum install mod_ssl -y
二、檢測測試
[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
三、上傳證書文件
這裏咱們能夠到各大廠商去申請免費證書,可知足我的網站的需求,如企業網站,建議購買企業收費證書;網站
[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]#
四、修改配置google
[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 | 證書鏈文件 |
五、重啓服務
[root@node1 ~]# httpd -t Syntax OK 能夠先試用httpd -t 檢測一下配置文件是否正確,而後再重啓服務; [root@node1 ~]# service httpd restart Stopping httpd: [ OK ] Starting httpd: [ OK ]
六、檢測端口是否監聽
[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]#
七、測試訪問
一、上傳證書文件
[root@node1 ~]# cd /etc/httpd/ssl/ [root@node1 ssl]# mkdir web [root@node1 ssl]# cd web/ [root@node1 web]# rz
二、修改配置文件
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>
三、重啓服務
[root@node1 conf.d]# service httpd restart Stopping httpd: [ OK ] Starting httpd: [ OK ] [root@node1 conf.d]#
四、測試訪問
到這裏,Apache多站點https就實現了~