爲自己的服務器設置域名以及SSL證書

騰訊雲服務器

  • 騰訊雲
  • 阿里雲
  • 百度雲

域名綁定服務器

  • 在對應雲平臺使用最高權限管理員添加域名綁定IP

域名綁定SSL證書

本人是在騰訊雲平臺申請的 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 如何生成

在線生成工具

  1. 域名必須正確輸入。
  2. 密鑰算法選擇RSA的話,密鑰長度需要2048bit以上;ECC則是256bit以上。
  3. 摘要簽名雖說目前可以任意,但建議是sha2-256以上。
設置 SSL 證書
tomcat 設置 ssl 證書(tomcat 配置 jks 格式證書)
  • 1.導出 jks 證書到 tomcat/conf 文件夾下
  • 2.配置 tomcat 的 server.xml

(2.1)修改端口爲 80 ,重定向端口爲 443 端口是SSL的專用端口。
修改端口爲443

    <!-- 不配置 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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章