各類網站部署SSL證書

要給自己的網站配置 SSL 證書,首先要申請一個 SSL 證書,有很多平臺可以免費申請(當然也有收費的),比如說騰訊雲。申請成功後,將證書下載下來,下載到的是一個壓縮包,裏面包含各種服務器版本的證書,不同服務器不一樣的配置。

1. Apache部署SSL證書

編輯 Apache根 目錄下 conf/httpd.conf 文件,
找到 #LoadModule ssl_module modules/mod_ssl.so 和 #Include conf/extra/httpd-ssl.conf,去掉前面的#號註釋;
編輯 Apache 根目錄下 conf/extra/httpd-ssl.conf 文件,修改如下內容:

<VirtualHost www.domain.com:443>
DocumentRoot “/var/www/html” #你的網站根目錄位置
ServerName www.domain.com      #你的域名
SSLEngine on                                    #啓用SSL功能
SSLCertificateFile /usr/local/apache/conf/2_www.domain.com_cert.crt    #你的CA證書文件
SSLCertificateKeyFile /usr/local/apache/conf/3_www.domain.com.key     #你的私鑰文件
SSLCertificateChainFile /usr/local/apache/conf/1_root_bundle.crt             #你的證書鏈文件
</VirtualHost>

配置完成後,重新啓動 Apache 就可以使用 https://www.domain.com 來訪問了。

2. Nginx部署SSL證書

將域名 www.domain.com 的證書文件 1_www.domain.com_bundle.crt 、私鑰文件 2_www.domain.com.key 保存到同一個目錄,例如 /usr/local/nginx/conf 目錄下。
更新 Nginx 根目錄下 conf/nginx.conf 文件如下:

server {
listen 443;
server_name www.domain.com;                               #填寫綁定證書的域名
ssl on;                                                                              #啓用SSL功能
ssl_certificate 1_www.domain.com_bundle.crt;  #證書文件
ssl_certificate_key 2_www.domain.com.key;       #私鑰文件
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;                   #按照這個協議配置
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;  #按照這個套件配置
ssl_prefer_server_ciphers on;
location / {
root   html;  #站點目錄
index  index.html index.htm;
}
}

配置完成後,先用 bin/nginx –t 來測試下配置是否有誤,正確無誤的話,重啓 nginx。就可以使 https://www.domain.com 來訪問了。

2.1 使用全站加密,http 自動跳轉 https

對於用戶不知道網站可以進行 https訪問的情況下,讓服務器自動把 http 的請求重定向到 https。
在服務器這邊的話配置的話,可以在頁面里加js腳本,也可以在後端程序裏寫重定向,當然也可以在 web 服務器來實現跳轉。Nginx 是支持 rewrite 的(只要在編譯的時候沒有去掉 pcre)
在 http 的 server 裏增加 rewrite ^(.*) https://host 1 permanent;
這樣就可以實現 80 進來的請求,重定向爲 https 了。

3. Tomcat 證書部署

3.1 獲取證書
如果申請證書時有填寫私鑰密碼,下載可獲得 Tomcat 文件夾,其中有密鑰庫 www.domain.com.jks;
如果沒有填寫私鑰密碼,不提供 Tomcat 證書文件的下載,需要用戶手動轉換格式生成。
可以通過 Nginx 文件夾內證書文件和私鑰文件生成jks格式證書
轉換工具:https://www.trustasia.com/tools/cert-converter.htm
使用工具時注意填寫 密鑰庫密碼 ,安裝證書時配置文件中需要填寫。

3.2 證書安裝

配置 SSL 連接器,將 www.domain.com.jks 文件存放到 conf 目錄下,然後配置同目錄下的 server.xml 文件:

<Connector port=”443″
protocol=”HTTP/1.1SSLEnabled=”true”
maxThreads=”150″
scheme=”https”
secure=”true”
keystoreFile=”conf\www.domain.com.jks”
keystorePass=”changeit”
clientAuth=”false”
sslProtocol=”TLS” />

注:
這裏寫圖片描述

3.3 http 自動跳轉 https 的安全配置
到conf目錄下的 web.xml。在 後面,,也就是倒數第二段裏,加上這樣一段

<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=”80″
protocol=”HTTP/1.1″
connectionTimeout=”20000″
redirectPort=”443″
/>

redirectPort 改成 ssl 的 connector 的端口 443,重啓後便會生效。

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