linux系統SSL證書部署https單/多站點
發佈時間:2017-03-20
以下教程為linux系統申請SSL證書,部署單/多站點https方法。如果對技術不熟悉,建議提交工單,由我司工程師幫您配置(會有費用產生)。
1、申請證書
2、寶塔面板部署
3、WDCP面板部署
4、非預裝環境部署
5、TOMCAT部署
第二步:申請成功以後下載解壓證書


點擊“詳情” 將證書下載到本地解壓,證書下載的時候選擇nginx,slb版本。
第三步:部署
寶塔面板:

寶塔面板上編輯站點,點擊SSL,用記事本打開下載後的證書,複製對應內容,保存然後重啓web服務。
wdcp面板:
一、安裝我司默認wdcp環境,分v3.2和v2.5教程
說明:nginx web引擎可部署一個或多個站點,並且支持apache+nginx混合模式,不影響之前apache引擎的任何設置(如偽靜態、.htaccess規則等)。以下教程基於linux+apache+nginx 引擎。
1.wdcp v3.2(linux+apache+nginx)系統模板為:
目前wdcp v3.2默認為nginx+apache引擎,用戶登錄wdcp界面可自助,很簡單的設置。
A、首先申請》下載》解壓SSL證書到本地電腦。然後登陸wdcp控制面板,點網站管理》SSL證書管理》上傳證書crt和key,證書名稱與建立的站點名一致,如圖:

注意:
1、證書文件名必須和站點域名相同才能成功部署https(參考如附圖)


B、點網站管理》站點列表編輯,直接啓用即可。

可針對所有站點,重復以上兩步部署即可。
二、非默認環境手工部署方法(僅為參考,因實際環境等不同,請根據實際情況調整)
1. Apache 部署SSL證書
a. 查看apache是否開啓ssl (特別注意要在apache配置文件中添加Listen 443否則沒有443端口監聽)
打開 apache安裝目錄/conf/httpd.conf 文件,找到 裡面兩行
#LoadModule ssl_module modules/mod_ssl.so
將行首的#去掉,保存文件
執行命令: apache安裝目錄/bin/httpd -M | grep ssl_module , 出現圖下結果說明apache已經支持ssl, 否則請先開啓apache的ssl模塊

b. 配置證書到對應的站點
編輯站點對應的站點配置文件(例如:/conf/vhosts.conf), 修改內容如下
<VirtualHost www.domain.com:443>
DocumentRoot "/var/www/html"
ServerName www.domain.com
SSLEngine on
SSLCertificateFile 證書文件路徑/_www.domain.com.cer
SSLCertificateKeyFile 證書文件路徑/_www.domain.com.key
SSLCertificateChainFile 證書文件路徑/_www.domain.com_ca.crt # 對應wdcp中apache的bundle文件
</VirtualHost>
c. 重啓apache生效
2. Nginx 部署SSL證書 (特別注意下面加紅內容,如果證書文件中有.crt和.cer文件的,需要先合併.crt、.cer文件。如果只有.crt文件則不用)
a. 查看nginx是否開啓ssl
執行命令: nginx安裝目錄/sbin/nginx -V, 查看命令結果中是否包含"--with-http_ssl_module",否則請先安裝ssl模塊
b. 配置證書到對應的站點
編輯站點對應的站點配置文件,新增或修改如下內容
server {
listen 443 ssl; #將原來的80 修改為443
...
root /www/web/xxxx/public_html;
ssl_certificate 證書文件路徑/_www.domain.com.crt; #需將_www.domain.com.cer 中的內容複製到這個文件頭部,中間不要有空行
ssl_certificate_key 證書文件路徑/_www.domain.com.key; #證書密鑰文件
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!DH:!EXPORT:!RC4:+HIGH:+MEDIUM:!LOW:!aNULL:!eNULL;
...
}
三、Tomcat 證書部署
a. 證書轉換:java安裝目錄bin下執行:
keytool -importkeystore -v -srckeystore 原jks路徑 -srcstoretype pkcs12 -srcstorepass 證書密碼 -destkeystore 生成新證書路徑 -deststoretype jks -deststorepass 新證書密碼
也可以通過https://www.ssleye.com/ssltool/jks_pkcs12.html 這個地址在線轉換,選擇從PKCS12到JKS

生成的jks文件放conf目錄下.
配置SSL連接器
將www.domain.com.jks文件存放到conf目錄下,然後配置同目錄下的server.xml文件, 新增如下內容
<Connector
port="443"
protocol="HTTP/1.1"
tomcat8 需要使用"protocol="org.apache.coyote.http11.Http11Protocol"
SSLEnabled="true"
maxThreads="150"
scheme="https"
secure="true"
keystoreFile="conf\www.domain.com.jks"
keystorePass="changeit"
clientAuth="false" sslProtocol="TLS"
/>
說明
clientAuth如果設為true,表示Tomcat要求所有的SSL客戶出示安全證書,對SSL客戶進行身份驗證
keystoreFile指定keystore文件的存放位置,可以指定絕對路徑,也可以指定相對於 (Tomcat安裝目錄)環境變量的相對路徑。如果此項沒有設定,默認情況下,Tomcat將從當前操作系統用戶的用戶目錄下讀取名為 “.keystore”的文件。
keystorePass密鑰庫密碼,指定keystore的密碼。(如果申請證書時有填寫私鑰密碼,密鑰庫密碼即私鑰密碼)
sslProtocol指定套接字(Socket)使用的加密/解密協議,默認值為TLS
b. 多個域名證書配置
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" defaultSSLHostConfigName="www.aaa.com" maxThreads="150" SSLEnabled="true">
<SSLHostConfig hostName="www.aaa.com">
<Certificate certificateKeystoreFile="conf/SHA256withRSA_www.aaa.com.jks" certificateKeyAlias="www.aaa.com"
certificateKeystorePassword="tyson1314"
type="RSA" />
</SSLHostConfig>
<SSLHostConfig hostName="www.bbb.com">
<Certificate certificateKeystoreFile="conf/SHA256withRSA_www.bbb.com.jks" certificateKeyAlias="www.bbb.com"
certificateKeystorePassword="dIVVMxg"
type="RSA" />
</SSLHostConfig>
</Connector>
c. http自動跳轉https的安全配置
到conf目錄下的web.xml。在</welcome-file-list>後面,</web-app>,也就是倒數第二段裡,加上這樣一段
<web-resource-collection > <web-resource-name >SSL</web-resource-name> <url-pattern>/*</url-pattern> </web-resource-collection> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint>
這步目的是讓非ssl的connector跳轉到ssl的connector去。所以還需要前往server.xml進行配置:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" />
redirectPort改成ssl的connector的端口443,重啓後便會生效。
以上內容來源於網絡,僅供參考。如果對技術不熟悉,建議提交工單,由我司工程師幫您配置(會有費用產生)。
相關鏈接:
A、windows2008+iis7環境SSL部署https單/多站點
C、win2012+iis8 部署https證書(支持多站點)
部署https(ssl)後設置301跳轉將http跳轉到https
