1. 程式人生 > >為伺服器生成證書

為伺服器生成證書

C:\Windows\system32>keytool -genkey -v -alias tomcat -keyalg RSA -keystore D:\tomcat.keystore -validity 36500
輸入keystore密碼:再次輸入新密碼:
您的名字與姓氏是什麼?
  [Unknown]
 StoneXing
您的組織單位名稱是什麼?
  [Unknown]
 iFLYTEK
您的組織名稱是什麼?
  [Unknown]
 iFLYTEK
您所在的城市或區域名稱是什麼?
  [Unknown]
合肥市您所在的州或省份名稱是什麼?
  [Unknown]
安徽省該單位的兩字母國家程式碼是什麼


  [Unknown]
 CN
CN=StoneXing, OU=iFLYTEK, O=iFLYTEK, L=
合肥市, ST=安徽省, C=CN正確嗎?  []  y

正在為以下物件生成 1,024 RSA 金鑰對和自簽名證書 (SHA1withRSA)(有效期為 36,500天):
         CN=StoneXing, OU=iFLYTEK, O=iFLYTEK, L=
合肥市, ST=安徽省, C=CN
輸入<tomcat>的主密碼(如果和 keystore密碼相同,按回車):
[
正在儲存 D:\tomcat.keystore]

C:\Windows\system32>

“D:\tomcat.keystore”

含義是將證書檔案的儲存路徑,證書檔名稱是tomcat.keystore(可自定義名稱)
“-validity 36500”
含義是證書有效期,36500表示100年,預設值是90天;

二、配置tomcat

配置tomcat,支援https,在tomcatconf/server.xml中增加如下內容。其中keystoreFile="/root/apache-tomcat-7.0.2/conf/keystore.jks"是證書的路徑。keystorePass="password"是證書密碼。sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2"是支援SSL/TLS,其中SSLv3存在漏洞,所以,不要新增。

Ciphers是加密演算法套件,加密演算法中SSL_RSA_WITH_RC4_128_SHATLS_ECDHE_RSA_WITH_RC4_128_SHA這一組套件存在漏洞,不要新增到Ciphers中。

其中protocol="org.apache.coyote.http11.Http11NioProtocol" JVM的資料交換規則,protocol="org.apache.coyote.http11.Http11AprProtocol"openSSL的資料交換規則,我們的證書是利用JVM生成的,所以,使用JVM的資料交換規則。同時openSSL存在SSLv3漏洞,若要使用,請更新伺服器openSSL到官方指定版本。

訪問https時,請用https://ip:port/XXX,其中port使用配置中的埠。

 <Connector SSLEnabled="true" acceptCount="100" clientAuth="false"
 disableUploadTimeout="true" enableLookups="true"
keystoreFile="/root/novnc/apache-tomcat-7.0.64/conf/keystore.jks" keystorePass="password"
maxSpareThreads="75" maxThreads="200" minSpareThreads="5" port="8444"
protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https" secure="true"
sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2"
ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA "
URIEncoding="UTF-8"/>