關於從證書認證機構申請的證書的使用

       近日一個項目上客戶方要求使用https來進行傳輸的加密,然後客戶方一個也不懂技術的負責人直接丟過來一個證書的壓縮包,包含了:CA.cer、服務器證書.cer、中級CA.cer、***cn.key 、***.cn.csr、csr.txt、私鑰.txt 等一堆文件,因爲之前https證書只是試驗的時候通過自建CA服務器和在tomcat上通過java生成key進行試驗過,線上使用還是第一次,然後裏面還沒有個說明(其實,事後接觸一次以後發現使用挺簡單,說明可有可無),這裏記錄一下,留待以後再有使用的時候可以返過來參考,因爲項目管理比較嚴格,不適宜截圖,以下內容都爲文字介紹。

      關於SSL的介紹接這些證書格式的介紹可以參考博客:https://www.cnblogs.com/guogangj/p/4118605.html  

      對於證書的生成及使用流程大概描述一下:

      通過證書提供機構的CSR生成工具來生成csr證書請求,生成以後會有一個csr文件和一個key文件生成(基本都是圖形化操作,過程不再介紹),需要保存好這倆文件。當然,如果不使用證書提供機構的csr工具來生成的話,也可以使用openssl工具和java的keytool來進行生成。

      參考鏈接(之前測試的時候做的,比較粗糙):https://blog.csdn.net/woshiji594167/article/details/79696003  ;

      然後將生成的csr證書請求發送給證書提供機構,證書提供機構會根據申請的類型進行相應的審覈,然後審覈通過後會將相應的簽名證書發送給申請者(是需要審覈通過之後,登陸證書提供機構的網站進行下載的);

     此時下載的證書包中即包含以上片頭列出來的證書:CA.cer、服務器證書.cer、中級CA.cer 。。。

     剩下的步驟就是需要將證書配置到web服務器或者應用中間件,具體如下:

Apache配置:

打開apache安裝目錄下conf目錄中的httpd.conf文件,查找“LoadModule ssl_module”如下:
 #LoadModule ssl_module modules/mod_ssl.so 
#Include conf/extra/httpd_ssl.conf   
 刪除行首的配置語句註釋符號“#” 
 保存退出。
 
 打開apache安裝目錄下conf/extra目錄中的httpd_ssl.conf(或conf目錄中的ssl.conf)文件  
 在配置文件的 …… 之間添加或編輯如下配置項

 SSLProtocol all -SSLv2 -SSLv3
 SSLHonorCipherOrder on
 SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
 SSLCertificateFile conf/server.crt         將服務器證書配置到該路徑下  
 SSLCertificateKeyFile conf/**.cn.key    將服務器證書私鑰配置到該路徑下  
 

然後配置一個virtualHost,註釋掉文件中的virtualHost標籤對

 保存退出,並重啓Apache  
 通過https方式訪問您的站點,測試站點證書的安裝配置。  

Nginx配置:

  server { 
        listen       443; 
        server_name  localhost; 
        ssl                  on; 
        ssl_certificate      server.pem; 
        ssl_certificate_key  server.key; 
        ssl_session_timeout  5m; 
        ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
#啓用TLS1.1、TLS1.2要求OpenSSL1.0.1及以上版本,若您的OpenSSL版本低於要求,請使用 ssl_protocols TLSv1;
        ssl_ciphers  HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM; 
        ssl_prefer_server_ciphers   on; 
        location / { 
            root   html; 
            index  index.html index.htm; 
        } 
    } 
保存退出,並重啓Nginx。  

Tomcat配置:

tomcat配置涉及到需要將證書格式進行轉換(tomcat不能直接使用cer證書,需要轉換爲jks證書),一般證書提供機構官網也提供此種工具:需要提供服務器證書和私鑰文件,若有私鑰文件還需要提供私鑰密碼,然後還需要設置轉出以後的證書密碼。 當然也可以使用java的keytool工具進行生成轉換。具體可以參考:https://www.chinassl.net/ssltools/keytool-commands.html

使用keytool工具列出**.cn.jks的內容(keytool位於jdk的bin目錄下,若未設置環境變量需要使用命令的絕對路徑):

keytool -list -keystore /asop/soft/**.cn.jks -storepass password

此時可以看到jks裏面已經有了一個證書信息(server.cer的證書內容已經通過證書格式轉換的時候導入進來了),此時還需要將中級CA證書的內容導入進jks證書中:

keytool -import -alias ca1 -keystore /asop/**.cn.jks -trustcacerts -storepass password -file /asop/soft/zhongjica.cer -noprompt

將jks證書移動到tomcat的conf下。

修改tomcat的conf/server.xml文件中的https連接器信息

  <Connector protocol="org.apache.coyote.http11.Http11Protocol"
                   port="443" SSLEnabled="true"
                   maxThreads="150" scheme="https" secure="true"
               keystoreFile="conf\keystore.jks" keystorePass="password"
               clientAuth="false" sslProtocol="TLS"
 ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"  />

然後重新啓動tomcat,訪問443端口來訪問應用。

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