騰訊雲服務器
- 騰訊雲
- 阿里雲
- 百度雲
域名綁定服務器
- 在對應雲平臺使用最高權限管理員添加域名綁定IP
域名綁定SSL證書
本人是在騰訊雲平臺申請的 SSL證書,下載之後如圖所示
CSR證書
需要認識一下 csr 證書(Certificate Signing Request,證書籤名請求文件)。是證書申請者在申請數字證書時由CSP(加密服務提供者)在生成私鑰的同時也生成證書請求文件,證書申請者只要把CSR文件提交給證書頒發機構後,證書頒發機構使用其根證書私鑰簽名就生成了證書公鑰文件,也就是頒發給用戶的證書。
- 有CSR必定有KEY,是成對的,CSR最終變成爲證書,和私鑰key配對使用。Key是以-----BEGIN RSA PRIVATE KEY-----開頭的,-----END RSA PRIVATE KEY-----結尾的。Key必須保存好。
CSR 什麼樣
CSR是以-----BEGIN CERTIFICATE REQUEST-----開頭,-----END CERTIFICATE REQUEST-----爲結尾的base64格式的編碼。將其保存爲文本文件,就是所謂的CSR文件。
CSR 如何生成
- 域名必須正確輸入。
- 密鑰算法選擇RSA的話,密鑰長度需要2048bit以上;ECC則是256bit以上。
- 摘要簽名雖說目前可以任意,但建議是sha2-256以上。
設置 SSL 證書
tomcat 設置 ssl 證書(tomcat 配置 jks 格式證書)
- 1.導出 jks 證書到 tomcat/conf 文件夾下
- 2.配置 tomcat 的 server.xml
(2.1)修改端口爲 80 ,重定向端口爲 443 端口是SSL的專用端口。
<!-- 不配置 jks 證書 -->
<Connector port="8021" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<!-- 配置 jks 證書 -->
<Connector port="8021" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
(2.2)AJP/1.3 也要修改爲 443
(2.3)設置證書
2.3.1 certificateKeystoreFile 使用的是那個證書
2.3.2 certificateKeystorePassword 申請證書時輸入的密碼
- 3.重啓 tomcat 服務器
nginx 設置 ssl 證書
- 1.將nginx目錄下的兩個文件存放到 conf/ssl 文件夾中
- 2.修改 nginx.conf 文件
默認端口打開的是 80 端口,
http{
#http節點中可以添加多個server節點
server{
# 監聽443端口
listen 443;
# 對應的域名,把 systemchao.cn 改成你們自己的域名就可以了
server_name systemchao.cn;
ssl on;
# 從騰訊雲獲取到的第一個文件的全路徑
ssl_certificate ./conf/ssl/1_systemchao.cn_bundle.crt;
# 從騰訊雲獲取到的第二個文件的全路徑
ssl_certificate_key ./conf/ssl/2_systemchao.cn.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;
}
server{
listen 80;
server_name systemchao.cn;
rewrite ^/(.*)$ https://systemchao.cn:443/$1 permanent;
}
}
- 3.配置這個SSL證書需要引用nginx中的SSL這模塊,需要將SSL模塊編譯。
// 重新添加SSL模塊
./configure --with-http_ssl_module
iis 設置 ssl 證書
apache 設置 ssl 證書
以.key結尾的文件(祕鑰文件)
以.crt結尾的文件(xxxxx_bundle.crt是證書鏈文件,xxxxx.crt是證書文件)
- 1.開啓 SSL服務,打開Apache/conf/httpd.conf,在httpd.conf文件中找到以下參數並進行配置,保存後退出。
# 1. 刪除行首的配置語句註釋符號“#”
# 2. 加載 mod_ssl.so 模塊啓用SSL服務,Apache默認是不啓用該模塊的。如果找不到該配置,請重新編譯mod_ssl模塊。
#LoadModule ssl_module modules/mod_ssl.so
# 3.刪除行首的配置語句註釋符號“#”。
#Include conf/extra/httpd-ssl.conf
- 2.打開Apache/conf/extra/httpd-ssl.conf,在httpd-ssl.conf文件中找到以下參數並進行配置。 證書路徑建議使用絕對路徑。
Listen 443
SSLPassPhraseDialog builtin<VirtualHost _default_:443>
DocumentRoot "C:\Program Files\api"
ServerName api.test.com
ServerAlias api.test.com
ErrorLog "C:\Program Files\api\logs\websslapi-error.log"
TransferLog "C:\Program Files\api\logs\websslapi-access.log"
<Directory "C:\Program Files\api">
Options FollowSymLinks ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile "C:\phpstudy\Apache\conf\ssl\api.test.com.crt"
SSLCertificateKeyFile "C:\phpstudy\Apache\conf\ssl\api.test.com.key"
SSLCertificateChainFile "C:\phpstudy\Apache\conf\ssl\api.test.com_ca_bundle.crt"
SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog "C:\Program Files\api\logs\ssl_request.log" \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>