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,在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存在漏洞,所以,不要添加。Ciphers是加密算法套件,加密算法中SSL_RSA_WITH_RC4_128_SHA及TLS_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"/>