基於windows服務器,在Apache上配置SSL證書

Apache服務器配置SSL證書時,遇到了一些問題,特意記錄下。本屌騰訊雲服務器

配置過程:

①在騰訊雲給域名簽發了SSL證書後,需要將其下載到本地。

解壓證書文件夾找到Apache文件夾,可以看到三個文件,將其副本到服務器Apache根目錄的conf文件夾裏的ssl文件夾中

 ②打開apache安裝目錄下conf目錄中的httpd.conf文件,找到以下內容並去掉“#”

#LoadModule ssl_module modules/mod_ssl.so (如果找不到請確認是否編譯過 openssl 插件)
#Include conf/extra/httpd-ssl.conf(刪除行首的配置語句註釋符號“#”,保存後退出)


③打開apache安裝目錄下conf / extra / httpd-ssl.conf文件,進行以下配置:

Listen 443 
<VirtualHost *:443> 
 DocumentRoot "C:/phpstudy/PHPTutorial/WWW" 
 ServerName www.youdomain.cn 
 ServerAlias youdomain.cn 
 SSLEngine on 
 SSLProtocol TLSv1 TLSv1.1 TLSv1.2 
 SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5 
 SSLCertificateFile "C:/phpstudy/Apache/PHPTutorial/conf/2_www.youdomain.cn.crt" 
 SSLCertificateKeyFile "C:/phpstudy/PHPTutorial/Apache/conf/3_www.youdomain.cn.key" 
 SSLCertificateChainFile "C:/phpstudy/PHPTutorial/Apache/conf/1_root_bundle.crt" 
 
 <Directory "C:/phpstudy/PHPTutorial/WWW/> 
 Options FollowSymLinks ExecCGI 
 AllowOverride All 
 Order allow,deny 
 Allow from all 
 Require all granted 
 </Directory> 
</VirtualHost> 


 

中途遇到的坑:

當取消掉包括開始的#時,會發現Apache服務器將無法正常啓動,查閱博客帖子後,有大佬說可能是httpd-ssl.conf文件不正確導致的,打開Apache根目錄下的bin目錄,找到httpd.exe工具對httpd-ssl.conf文件進行校正

運行校驗,發現Apache自帶的httpd-ssl.conf配置文件就是錯的,需要自行調整路徑

調試配置路徑直到不報錯,將系統替換證書名稱替換成自己的證書名稱,啓動Apache服務器,SSL證書配置完成,外網可以通過https正常訪問。


————————————————

另外如果遇到如下錯誤,報錯的地方屏蔽掉Listen 443,重新運行httpd.exe,沒有錯誤了重啓apache服務,輸入域名小鎖就加上了。點我查看實驗結果

——————————————————————————

還有一個問題記錄下,當我輸入www.xxxx.com(我的域名),不會使用https鏈接, 直接用http打開了,這個是http重定向的問題。查了下以下是解決方法:

 

最後,解決方案是在 VirtualHost 節點裏,添加如下配置:

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

完整配置參數如下:

<VirtualHost *:80>
	ServerName www.simbanet.cn
	ServerAlias other.simbanet.cn
	DocumentRoot "C:\wwwroot\mysite4"
	# ErrorLog "logs\simbanet.com_error_apache.log"
	# CustomLog "logs\simbanet.com_error_apache.log" common
	
	RewriteEngine on
    RewriteCond   %{HTTPS} !=on
    RewriteRule   ^(.*)  https://%{SERVER_NAME}$1 [L,R]
	
	<Directory "C:\wwwroot\mysite4">
		Options Indexes FollowSymlinks
		AllowOverride All
		Require all granted
	</Directory>
</VirtualHost>


這樣,對應使用域名訪問的時候就會自動跳轉到 https 。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章