個(gè)服務(wù)器IP多個(gè)SSL證書(shū)(https多網(wǎng)站)的Apache設置辦法
發(fā)布時(shí)間:2021年04月06日 01:46 | 發(fā)布者:新速科技 | 瀏覽次數:3541次
可能出現的情況:
· 老式的SSL證書(shū)是一個(gè)證書(shū)一個(gè)站點(diǎn)一個(gè)IP的一一對應,但后來(lái)有了改進(jìn);
· 可以配置為一臺服務(wù)器多個(gè)IP,分別對應不同的站點(diǎn)、不同的證書(shū);
· 還可以配置為一臺服務(wù)器一個(gè)IP,多個(gè)端口號對應不同的站點(diǎn)、不同的證書(shū);
· 后來(lái)出現SNI(Server Name Indication服務(wù)器名稱(chēng)指示)技術(shù),讓https與http一樣實(shí)現一臺服務(wù)器多個(gè)虛擬站點(diǎn),每個(gè)站點(diǎn)都可以對應不同的證書(shū),無(wú)需多個(gè)IP、無(wú)需多個(gè)端口(全部都用https標準的端口號443),多個(gè)域名、泛域名都支持。
設置過(guò)程
· 首先SSL證書(shū)提供商,根據自己的需要及預算選擇,如果自己的站點(diǎn)多,最好是選擇支持多域名、通配符的證書(shū),例如StartCom(link is external)的EV、OV、IV認證支持的證書(shū)(DV認證不支持通配符);
· 購買(mǎi)需要的證書(shū),這個(gè)過(guò)程中需要上傳或者粘貼CSR(PEM格式),這個(gè)CSR可以用startcomtool.exe來(lái)生成(同時(shí)保存Private Key文件startssl.key和CSR文件startssl.csr到本機),也可以在Linux下運行openssl req -new -newkey rsa:2048 -nodes -keyout example.com.key -out example.com.csr來(lái)生成key和csr;
· 下載生成的證書(shū)壓縮包文件example.com.zip,解壓后有ApacheServer.zip、IISServer.zip、NginxServer.zip、OtherServer.zip四個(gè)壓縮文件,再解壓其中的ApacheServer.zip得到兩個(gè)證書(shū)文件1_root_bundle.crt、2_example.com.crt;
· 上傳startssl.key和startssl.csr兩個(gè)文件以及兩個(gè)證書(shū)文件1_root_bundle.crt、2_example.com.crt到apache/conf目錄下,將startssl.csr加到2_example.com.crt文件后面形成一個(gè)新的文件startssl.crt;
· 修改httpd.conf或者包含的extra/httpd-ssl.conf文件,在ssl站點(diǎn)中設置key為上傳的startssl.key,crt為合并的startssl.crt,證書(shū)鏈crt為1_root_bundle.crt(每個(gè)證書(shū)的這三個(gè)文件內容都不一樣,即使文件名一樣);
· 如果需要設置多個(gè)SSL站點(diǎn),在A(yíng)pache 2.2以上版本中是開(kāi)啟SSL模塊后是直接支持SNI的,添加NameVirtualHost *:443和SSLStrictSNIVHostCheck off兩句后,就可以像http虛擬站點(diǎn)一樣設置多個(gè)https虛擬站點(diǎn);
· 多個(gè)https虛擬站點(diǎn)可以分別指向多個(gè)不同的證書(shū)文件,其中第一個(gè)默認https站點(diǎn)是在后續https站點(diǎn)配置找不到的時(shí)候自動(dòng)使用的默認配置;
· https虛擬站點(diǎn)與http虛擬站點(diǎn)配置一樣,可以使用ServerAlias來(lái)將多個(gè)子域名指向同一個(gè)目錄、采用相同的SSL證書(shū);
· 重啟apache,上面修改的配置就可以生效,再用瀏覽器檢查是否有問(wèn)題,特別是查看一下安全證書(shū)是否與申請的一致,如果提示網(wǎng)頁(yè)中有部分非安全內容,則要檢查嵌入的非安全部分內容,改為安全的內容;
· 沒(méi)有問(wèn)題了可以修改站點(diǎn)中的鏈接,讓http都改為https,如果是內部鏈接則與http或者https無(wú)關(guān),可以不修改,如果是寫(xiě)死的http,可以改為https或者內部鏈接,還可以改為//example.com這樣的URL形式;
· 最后修改apache配置文件或者.htaccess,讓以前的http訪(fǎng)問(wèn)全部301跳轉到https對應的網(wǎng)頁(yè)。
代碼示范
下面是一個(gè)修改httpd-ssl.conf文件的例子:
Listen 443
#Listen 8081
NameVirtualHost *:443 #這一條在apache2.4以后就不需要了
SSLStrictSNIVHostCheck off
<VirtualHost _default_:443>
DocumentRoot "/usr/local/apache/htdocs/easway.net"
ServerName www.easway.net
ServerAlias easway.net
ServerAdmin you@easway.net
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5 #根據阿里云SSL證書(shū)安裝示例中填寫(xiě)
SSLCertificateFile "/usr/local/apache/conf/server.crt"
SSLCertificateKeyFile "/usr/local/apache/conf/server.key"
SSLCertificateChainFile "/usr/local/apache/conf/1_root_bundle.crt"
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory "/usr/local/apache/htdocs/easway">
AllowOverride All
SSLOptions +StdEnvVars
</Directory>
</VirtualHost>
<VirtualHost *:443>
DocumentRoot "/usr/local/apache/htdocs/example2.com"
ServerName example2.com
ServerAlias subdomain.example2.com
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLCertificateFile "/usr/local/apache/conf/server2.crt"
SSLCertificateKeyFile "/usr/local/apache/conf/server2.key"
SSLCertificateChainFile "/usr/local/apache/conf/1_root_bundle2.crt"
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory "/usr/local/apache/htdocs/example2.com">
AllowOverride All
SSLOptions +StdEnvVars
</Directory>
</VirtualHost>
修改.htaccess文件實(shí)現301永久重定向的例子:
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
· 老式的SSL證書(shū)是一個(gè)證書(shū)一個(gè)站點(diǎn)一個(gè)IP的一一對應,但后來(lái)有了改進(jìn);
· 可以配置為一臺服務(wù)器多個(gè)IP,分別對應不同的站點(diǎn)、不同的證書(shū);
· 還可以配置為一臺服務(wù)器一個(gè)IP,多個(gè)端口號對應不同的站點(diǎn)、不同的證書(shū);
· 后來(lái)出現SNI(Server Name Indication服務(wù)器名稱(chēng)指示)技術(shù),讓https與http一樣實(shí)現一臺服務(wù)器多個(gè)虛擬站點(diǎn),每個(gè)站點(diǎn)都可以對應不同的證書(shū),無(wú)需多個(gè)IP、無(wú)需多個(gè)端口(全部都用https標準的端口號443),多個(gè)域名、泛域名都支持。
設置過(guò)程
· 首先SSL證書(shū)提供商,根據自己的需要及預算選擇,如果自己的站點(diǎn)多,最好是選擇支持多域名、通配符的證書(shū),例如StartCom(link is external)的EV、OV、IV認證支持的證書(shū)(DV認證不支持通配符);
· 購買(mǎi)需要的證書(shū),這個(gè)過(guò)程中需要上傳或者粘貼CSR(PEM格式),這個(gè)CSR可以用startcomtool.exe來(lái)生成(同時(shí)保存Private Key文件startssl.key和CSR文件startssl.csr到本機),也可以在Linux下運行openssl req -new -newkey rsa:2048 -nodes -keyout example.com.key -out example.com.csr來(lái)生成key和csr;
· 下載生成的證書(shū)壓縮包文件example.com.zip,解壓后有ApacheServer.zip、IISServer.zip、NginxServer.zip、OtherServer.zip四個(gè)壓縮文件,再解壓其中的ApacheServer.zip得到兩個(gè)證書(shū)文件1_root_bundle.crt、2_example.com.crt;
· 上傳startssl.key和startssl.csr兩個(gè)文件以及兩個(gè)證書(shū)文件1_root_bundle.crt、2_example.com.crt到apache/conf目錄下,將startssl.csr加到2_example.com.crt文件后面形成一個(gè)新的文件startssl.crt;
· 修改httpd.conf或者包含的extra/httpd-ssl.conf文件,在ssl站點(diǎn)中設置key為上傳的startssl.key,crt為合并的startssl.crt,證書(shū)鏈crt為1_root_bundle.crt(每個(gè)證書(shū)的這三個(gè)文件內容都不一樣,即使文件名一樣);
· 如果需要設置多個(gè)SSL站點(diǎn),在A(yíng)pache 2.2以上版本中是開(kāi)啟SSL模塊后是直接支持SNI的,添加NameVirtualHost *:443和SSLStrictSNIVHostCheck off兩句后,就可以像http虛擬站點(diǎn)一樣設置多個(gè)https虛擬站點(diǎn);
· 多個(gè)https虛擬站點(diǎn)可以分別指向多個(gè)不同的證書(shū)文件,其中第一個(gè)默認https站點(diǎn)是在后續https站點(diǎn)配置找不到的時(shí)候自動(dòng)使用的默認配置;
· https虛擬站點(diǎn)與http虛擬站點(diǎn)配置一樣,可以使用ServerAlias來(lái)將多個(gè)子域名指向同一個(gè)目錄、采用相同的SSL證書(shū);
· 重啟apache,上面修改的配置就可以生效,再用瀏覽器檢查是否有問(wèn)題,特別是查看一下安全證書(shū)是否與申請的一致,如果提示網(wǎng)頁(yè)中有部分非安全內容,則要檢查嵌入的非安全部分內容,改為安全的內容;
· 沒(méi)有問(wèn)題了可以修改站點(diǎn)中的鏈接,讓http都改為https,如果是內部鏈接則與http或者https無(wú)關(guān),可以不修改,如果是寫(xiě)死的http,可以改為https或者內部鏈接,還可以改為//example.com這樣的URL形式;
· 最后修改apache配置文件或者.htaccess,讓以前的http訪(fǎng)問(wèn)全部301跳轉到https對應的網(wǎng)頁(yè)。
代碼示范
下面是一個(gè)修改httpd-ssl.conf文件的例子:
Listen 443
#Listen 8081
NameVirtualHost *:443 #這一條在apache2.4以后就不需要了
SSLStrictSNIVHostCheck off
<VirtualHost _default_:443>
DocumentRoot "/usr/local/apache/htdocs/easway.net"
ServerName www.easway.net
ServerAlias easway.net
ServerAdmin you@easway.net
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5 #根據阿里云SSL證書(shū)安裝示例中填寫(xiě)
SSLCertificateFile "/usr/local/apache/conf/server.crt"
SSLCertificateKeyFile "/usr/local/apache/conf/server.key"
SSLCertificateChainFile "/usr/local/apache/conf/1_root_bundle.crt"
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory "/usr/local/apache/htdocs/easway">
AllowOverride All
SSLOptions +StdEnvVars
</Directory>
</VirtualHost>
<VirtualHost *:443>
DocumentRoot "/usr/local/apache/htdocs/example2.com"
ServerName example2.com
ServerAlias subdomain.example2.com
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLCertificateFile "/usr/local/apache/conf/server2.crt"
SSLCertificateKeyFile "/usr/local/apache/conf/server2.key"
SSLCertificateChainFile "/usr/local/apache/conf/1_root_bundle2.crt"
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory "/usr/local/apache/htdocs/example2.com">
AllowOverride All
SSLOptions +StdEnvVars
</Directory>
</VirtualHost>
修改.htaccess文件實(shí)現301永久重定向的例子:
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
上一篇:
Linux RAR 安裝和使用
網(wǎng)站營(yíng)銷(xiāo)
推薦文章
- 網(wǎng)站優(yōu)化應該怎樣圍繞用戶(hù)來(lái)開(kāi)展優(yōu)化?
- SEO優(yōu)化如何“搭乘”線(xiàn)上營(yíng)銷(xiāo)推廣“列車(chē)”?
- 淺談百度SEO快排是什么、原理、如何判斷及應對?
- 2021做好網(wǎng)站seo優(yōu)化的幾個(gè)要素
- 上街網(wǎng)站建設制作哪家好?
- 個(gè)服務(wù)器IP多個(gè)SSL證書(shū)(https多網(wǎng)站)的Apache設置辦法
- Linux RAR 安裝和使用
- 2021清明節放假通知!
- 鄭州網(wǎng)站設計:網(wǎng)頁(yè)流量對排名的影響
- 鄭州網(wǎng)站優(yōu)化:高質(zhì)量的外鏈如何建設
熱門(mén)文章
- 一個(gè)資深網(wǎng)絡(luò )營(yíng)銷(xiāo)分析2014年微商如何在朋友圈賣(mài)貨
- 做好微信活動(dòng)策劃的幾個(gè)方法
- 如何設置IIS程序池的回收時(shí)間,才能最大程度的減少對用戶(hù)的影響?
- 58同城戰略入股趕集網(wǎng)
- 淺談百度SEO快排是什么、原理、如何判斷及應對?
- 傳統企業(yè)轉型“互聯(lián)網(wǎng)+”,先學(xué)會(huì )這三道減法
- 愛(ài)空間:月入千單就盈利
- windows下mysql忘記root密碼的解決方法
- 美國人如何玩轉各種O2O新商業(yè)模式
- 網(wǎng)站優(yōu)化應該怎樣圍繞用戶(hù)來(lái)開(kāi)展優(yōu)化?