我想生成一个自签名SSL证书,并将其用于Tomcat。我该怎么做呢?
093gszye1#
如果出于开发目的要生成用于Tomcat的SSL证书,可以使用这一行程序(需要您的计算机上有JDK,因此不使用openssl)。
keytool -genkey -keyalg RSA -noprompt -alias tomcat -dname "CN=localhost, OU=NA, O=NA, L=NA, S=NA, C=NA" -keystore keystore.jks -validity 9999 -storepass changeme -keypass changeme
这将使用tomcat的keyAlias生成密码为changeme的keystore.jks文件,该文件对于localhost有效期为9999天在tomcat/conf/server.xml中,您需要像<Connector>中那样指定它
tomcat
keyAlias
changeme
keystore.jks
localhost
tomcat/conf/server.xml
<Connector>
keyAlias="tomcat" keystoreFile="/path/to/my/keystore.jks" keystorePass="changeme"
根据the documentation:NIO和NIO2 SSL配置属性已弃用,而改用缺省的SSLHostConfig这意味着现在应将上述值作为connector/SSLHostConfig/Certificate的属性,并使用以下名称:
certificateKeyAlias="tomcat" certificateKeystoreFile="/path/to/my/keystore.jks" certificateKeystorePassword="changeme"
vhmi4jdf2#
keytool -genkey -keyalg RSA -alias tomcat -keystore selfsigned.jks -validity 365 -keysize 2048
默认情况下,密钥存储区密码设置为ChangeIt;您可以使用密钥工具实用程序的 -storepasswd 选项将其更改为更安全的内容。1.当提示输入名字和姓氏时,请输入服务器的域名。例如,myserver或myserver.mycompany.com1.输入其他详细信息,如组织单位、组织、城市、州和国家(地区)。1.确认输入的信息正确无误。1.当提示输入 tomcat 的“Enter key”密码时,按Enter键以使用与密钥存储区密码相同的密码。
keytool -list -v -keystore selfsigned.jks
keytool -export -keystore selfsigned.jks -storepass <password> -alias tomcat -file selfsigned.cer
keytool -printcert -v -file selfsigned.cer
keytool -delete -noprompt -trustcacerts -alias tomcat -file selfsigned.cer -keystore "$JAVA_HOME/jre/lib/security/cacerts"
keytool -list -keystore "$JAVA_HOME/jre/lib/security/cacerts" | grep tomcat
rm -f selfsigned.cer
从密钥存储中移除SSL证书并将其删除。
keytool -delete -noprompt -trustcacerts -alias tomcat -keystore selfsigned.jks
keytool -list -keystore keytool -list -keystore selfsigned.jks | grep tomcat
rm -f selfsigned.jks
keytool -import -noprompt -trustcacerts -alias tomcat -file selfsigned.cer -keystore "$JAVA_HOME/jre/lib/security/cacerts" -storepass changeit
1.在tomcat server.xml中,查找文件中的 Connector 标签,添加密钥库文件路径及其密码,请参考以下配置。
<Connector port="8080" protocol="HTTP/1.1" redirectPort="443" disableUploadTimeout="false"/> <Connector port="443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" keystoreFile="selfsigned.jks" keystorePass="<password>" clientAuth="false" acceptCount="100"/>
2条答案
按热度按时间093gszye1#
如果出于开发目的要生成用于Tomcat的SSL证书,可以使用这一行程序(需要您的计算机上有JDK,因此不使用openssl)。
这将使用
tomcat
的keyAlias
生成密码为changeme
的keystore.jks
文件,该文件对于localhost
有效期为9999天在
tomcat/conf/server.xml
中,您需要像<Connector>
中那样指定它根据the documentation:
NIO和NIO2 SSL配置属性已弃用,而改用缺省的SSLHostConfig
这意味着现在应将上述值作为connector/SSLHostConfig/Certificate的属性,并使用以下名称:
vhmi4jdf2#
生成自签名SSL证书并添加到JAVA信任库以便与Tomcat一起使用
keytool -genkey -keyalg RSA -alias tomcat -keystore selfsigned.jks -validity 365 -keysize 2048
默认情况下,密钥存储区密码设置为ChangeIt;您可以使用密钥工具实用程序的 -storepasswd 选项将其更改为更安全的内容。
1.当提示输入名字和姓氏时,请输入服务器的域名。例如,myserver或myserver.mycompany.com
1.输入其他详细信息,如组织单位、组织、城市、州和国家(地区)。
1.确认输入的信息正确无误。
1.当提示输入 tomcat 的“Enter key”密码时,按Enter键以使用与密钥存储区密码相同的密码。
keytool -list -v -keystore selfsigned.jks
keytool -export -keystore selfsigned.jks -storepass <password> -alias tomcat -file selfsigned.cer
keytool -printcert -v -file selfsigned.cer
从JAVA信任库中删除SSL证书。
keytool -delete -noprompt -trustcacerts -alias tomcat -file selfsigned.cer -keystore "$JAVA_HOME/jre/lib/security/cacerts"
keytool -list -keystore "$JAVA_HOME/jre/lib/security/cacerts" | grep tomcat
rm -f selfsigned.cer
从密钥存储中移除SSL证书并将其删除。
keytool -delete -noprompt -trustcacerts -alias tomcat -keystore selfsigned.jks
keytool -list -keystore keytool -list -keystore selfsigned.jks | grep tomcat
rm -f selfsigned.jks
keytool -import -noprompt -trustcacerts -alias tomcat -file selfsigned.cer -keystore "$JAVA_HOME/jre/lib/security/cacerts" -storepass changeit
证书现已完成,可供Apache Tomcat服务器使用。
1.在tomcat server.xml中,查找文件中的 Connector 标签,添加密钥库文件路径及其密码,请参考以下配置。