linux系統SSL證書部署https單/多站點

發佈時間:2017-03-20

以下教程為linux系統申請SSL證書,部署單/多站點https方法。如果對技術不熟悉,建議提交工單,由我司工程師幫您配置(會有費用產生)。

1、申請證書

2、寶塔面板部署

3、WDCP面板部署

4、非預裝環境部署

5、TOMCAT部署



第一步:申請證書。 申請地址 。 證書申請流程.

第二步:申請成功以後下載解壓證書

image.png

image.png

點擊“詳情” 將證書下載到本地解壓,證書下載的時候選擇nginx,slb版本。


第三步:部署


寶塔面板: 


image.png

寶塔面板上編輯站點,點擊SSL,用記事本打開下載後的證書,複製對應內容,保存然後重啓web服務。




wdcp面板:

一、安裝我司默認wdcp環境,分v3.2和v2.5教程

說明:nginx web引擎可部署一個或多個站點,並且支持apache+nginx混合模式,不影響之前apache引擎的任何設置(如偽靜態、.htaccess規則等)。以下教程基於linux+apache+nginx 引擎。

1.wdcp v3.2(linux+apache+nginx)系統模板為:4.png

目前wdcp v3.2默認為nginx+apache引擎,用戶登錄wdcp界面可自助,很簡單的設置。

A、首先申請》下載》解壓SSL證書到本地電腦。然後登陸wdcp控制面板,點網站管理》SSL證書管理》上傳證書crt和key,證書名稱與建立的站點名一致,如圖:


注意:

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

image.png

image.png

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模塊

         blob.png

    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

image.png


生成的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單/多站點

B、windows2003系統SSL單站點部署https

C、win2012+iis8 部署https證書(支持多站點)

D、寶塔面板部署https證書

部署https(ssl)後設置301跳轉將http跳轉到https

亞數機房香港IP部署請點擊參考此教程