1. 程式人生 > >【Windows】Windows Server 2012 R2 利用PhpStudy部署apache,並在同一IP下部署HTTPS多域名

【Windows】Windows Server 2012 R2 利用PhpStudy部署apache,並在同一IP下部署HTTPS多域名

環境:
伺服器:阿里雲 Windows Server 2012 R2
域名:阿里雲,已備案,已解析
SSL證書:阿里雲,已購買

操作,以阿里云為例:
1.安裝系統更新,關閉IE增強安全配置,開啟防火牆,將常用埠(80,443,3306,8443等)加入入站規則,具體操作如下:
伺服器管理器——Windows 更新——安裝更新;
伺服器管理器——IE增強的安全配置——關閉;
伺服器管理器——Windows 防火牆——啟用;
伺服器管理器——Windows 防火牆——高階設定——入站規則——新建規則——埠——TCP和特定本地埠:80——允許連線——全選——名稱和描述隨意——完成;
同樣操作將443,3306,8443等埠,根據實際情況新增;
2.在阿里雲控制檯的防火牆中新增相應埠的規則;
在這裡插入圖片描述


3.安裝PhpStudy,下載地址:連結: http://phpstudy.php.cn/
4.根據需求切換版本,建議選擇系統服務;
在這裡插入圖片描述
5.根據需求開啟PHP擴充套件和apache模組,下圖僅供參考:
在這裡插入圖片描述
在這裡插入圖片描述
6.下載SSL證書,在PhpStudy\PHPTutorial\Apache\conf下建立cert資料夾,將證書檔案放入;
在這裡插入圖片描述
7.備份Apache\conf下的httpd.conf、vhosts.conf檔案和Apache\conf\extra下的httpd-ssl.conf檔案,開啟httpd.conf,搜尋

LoadModule ssl_module modules/mod_ssl.so
LoadModule rewrite_module modules/mod_rewrite.so
Include conf/extra/httpd-ssl.conf

去掉前面的#,儲存退出;
8.開啟httpd-ssl.conf,搜尋Listen 443,刪除下面內容:

<VirtualHost _default_:443>
 
...
 
...
 
</VirtualHost>

9.新增如下程式碼:

SSLStrictSNIVHostCheck off
# 新增 SSL 協議支援協議,去掉不安全的協議
SSLProtocol all -SSLv2 -SSLv3
# 修改加密套件如下
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLHonorCipherOrder on
 
<VirtualHost *:443>
	# 網站1目錄
	DocumentRoot "C:\WWW\aaa"
	# 網站1域名
	ServerName aaa.xxx.com
	# 網站1別名
	ServerAlias xxx.com
	# 網站1目錄
	<Directory "C:\WWW\aaa">
		Options FollowSymLinks ExecCGI
		AllowOverride All
		Order allow,deny
		Allow from all
		Require all granted
	</Directory>
	SSLEngine on
	# 證書公鑰配置
	SSLCertificateFile "C:/Software/PhpStudy/PHPTutorial/Apache/conf/cert/aaa/public.pem"              
	# 證書私鑰配置
	SSLCertificateKeyFile "C:/Software/PhpStudy/PHPTutorial/Apache/conf/cert/aaa/214806726580310.key"      
	# 證書鏈配置
	SSLCertificateChainFile "C:/Software/PhpStudy/PHPTutorial/Apache/conf/cert/aaa/chain.pem"         
</VirtualHost>
 
<VirtualHost *:443>
	# 網站2目錄
	DocumentRoot "C:\WWW\bbb"
	# 網站2域名
	ServerName bbb.xxx.com
	# 網站2目錄
	<Directory "C:\WWW\bbb">
		Options FollowSymLinks ExecCGI
		AllowOverride All
		Order allow,deny
		Allow from all
		Require all granted
	</Directory>
	SSLEngine on
	# 證書公鑰配置
	SSLCertificateFile "C:/Software/PhpStudy/PHPTutorial/Apache/conf/cert/bbb/public.pem"              
	# 證書私鑰配置
	SSLCertificateKeyFile "C:/Software/PhpStudy/PHPTutorial/Apache/conf/cert/bbb/214806726580310.key"      
	# 證書鏈配置
	SSLCertificateChainFile "C:/Software/PhpStudy/PHPTutorial/Apache/conf/cert/bbb/chain.pem"         
</VirtualHost>

多個域名就繼續新增,儲存退出,重啟apache;
10.如果想要網站http強制跳轉到https,開啟httpd.conf,在末尾新增如下程式碼:

RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/?(.*)$ https://%{SERVER_NAME}/$1 [L,R]

儲存退出,重啟apache;