為伺服器生成證書
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”
“-validity 36500”含義是證書有效期,36500表示100年,預設值是90天;
二、配置tomcat
配置tomcat,支援https,在tomcat的conf/server.xml中增加如下內容。其中keystoreFile="/root/apache-tomcat-7.0.2/conf/keystore.jks"是證書的路徑。keystorePass="password"是證書密碼。sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2"是支援SSL/TLS,其中SSLv3存在漏洞,所以,不要新增。
其中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"/>