如何创建用于Tomcat的自签名SSL证书?
我想生成一个自签名SSL证书,并将其与Tomcat一起使用如何创建用于Tomcat的自签名SSL证书?,tomcat,ssl-certificate,Tomcat,Ssl Certificate,我想生成一个自签名SSL证书,并将其与Tomcat一起使用 如何实现这一点?如果您希望生成用于开发目的的SSL证书,以便与tomcat一起使用,您可以使用此一行程序(在您的机器上需要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 -有效期9999-storepass chang
如何实现这一点?如果您希望生成用于开发目的的SSL证书,以便与tomcat一起使用,您可以使用此一行程序(在您的机器上需要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 -有效期9999-storepass changeme-keypass changeme 这将使用
tomcat
的keyalis
生成密码为changeme
的keyalis
文件,该文件对localhost
有效9999天
在您的tomcat/conf/server.xml
中,您需要像在
自Tomcat 8以来
根据:
NIO和NIO2 SSL配置属性已被弃用,取而代之的是默认的SSLHostConfig
这意味着上述值现在应作为connector/SSLHostConfig/Certificate的属性,并具有以下名称:
certificateKeyAlias="tomcat"
certificateKeystoreFile="/path/to/my/keystore.jks"
certificateKeystorePassword="changeme"
生成自签名SSL证书并添加到JAVA truststore以与Tomcat一起使用
keytool-genkey-keyalg RSA-alias tomcat-keystore selfsigned.jks-validity 365-keysize 2048
- 其中,365表示证书有效的天数
- 上面的命令导出别名为tomcat的证书
- selfsigned.jks是密钥存储文件
keytool-list-v-keystore selfsigned.jks
- 密钥工具实用程序的-list选项列出指定密钥存储文件的内容
- v选项告诉密钥工具实用程序以人类可读的形式显示证书指纹
keytool-export-keystore selfsigned.jks-storepass-alias tomcat-file selfsigned.cer
- password是密钥库密码,请输入步骤2中记录的密钥库密码
- 钥匙工具实用程序以以下输出响应 存储在selfsigned.cer文件中的证书
- 您可以仔细检查证书文件的内容,以确保它包含正确的证书
- 密钥工具实用程序的-printcert选项列出指定证书文件的内容。例如,以下命令列出了在上一步中创建的证书文件selfsigned.cer:
keytool-printcert-v-file selfsigned.cer
- v选项再次告诉密钥工具实用程序以人类可读的形式显示证书的指纹
- 检查keytool-printcert命令的输出,以确保证书是正确的
从JAVA信任库中删除SSL证书并将其删除。
- 运行以下命令从JAVA信任存储中删除证书
keytool-delete-noprompt-trustcacerts-alias tomcat-file selfsigned.cer-keystore“$JAVA\u HOME/jre/lib/security/cacerts”
- 出现提示时,输入密码(默认情况下,密码为changeit)
- 运行以下命令以确认是否从JAVA信任存储中删除了证书
keytool-list-keystore“$JAVA_HOME/jre/lib/security/cacerts”| grep tomcat
- 出现提示时,输入密码(默认情况下,密码为changeit)
- 运行以下命令从系统中删除证书文件
从密钥存储中删除SSL证书并将其删除。rm-f自签名.cer
- 运行以下命令从密钥存储中删除证书
keytool-delete-noprompt-trustcacerts-alias tomcat-keyst
certificateKeyAlias="tomcat" certificateKeystoreFile="/path/to/my/keystore.jks" certificateKeystorePassword="changeme"
<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"/>