tomcat 配置ssl/https 证书问题(一)- No enum constant org.apache.tomcat.util.net.SSLHostConfigCertificate.Typ

来源:互联网 发布:自己设计装修画图软件 编辑:程序博客网 时间:2024/06/10 23:54

Tomcat9配置https 证书出现错误No enum constant org.apache.tomcat.util.net.SSLHostConfigCertificate.Typ

启动的时候出现以下错误:

11-Oct-2017 16:33:42.602 SEVERE [main] org.apache.tomcat.util.digester.Digester.startElement Begin event threw exception java.lang.IllegalArgumentException: No enum constant org.apache.tomcat.util.net.SSLHostConfigCertificate.Type.TLSat java.lang.Enum.valueOf(Enum.java:238)at org.apache.tomcat.util.net.SSLHostConfigCertificate$Type.valueOf(SSLHostConfigCertificate.java:242)at org.apache.catalina.startup.CertificateCreateRule.begin(CertificateCreateRule.java:39)at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1159)at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:509)at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:182)at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1339)at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2784)at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:602)at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:505)at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:841)at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:770)at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:643)at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1424)at org.apache.catalina.startup.Catalina.load(Catalina.java:580)at org.apache.catalina.startup.Catalina.load(Catalina.java:631)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:311)at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:494)

输入以下命令查看证书信息:

【root@########### https】# keytool -list -v -keystore fileName.jks -storepass *****

keytool -list -v -keystore fileName.jks -storepass ****
其中要注意的一项是alias name(别名对应的值) ,可以看到证书的别名是#####,我们需要在tomcat 的server.xml 文件下配置如下信息:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" secure="true" URIEncoding="UTF-8" useBodyEncodingForURI="true">    <SSLHostConfig certificateVerification="optional">        <Certificate certificateKeystoreFile="opt/https/bin/mykey.jks" certificateKeystorePassword="*****" certificateKeyAlias="jhone"/>    </SSLHostConfig></Connector>

添加完毕,可以在此测试是否添加成功:https://csr.chinassl.net/ssl-checker.html,不过只要tomcat 启动不报错就没什么问题了

注意:本人用的是linux(原理都是一样的),其中certificateKeystoreFile 对应的是证书的路径,cerfificateKeystorePassword 对应的是证书的密码,cerfificateKeyAlies 对应的是证书的别名。




原创粉丝点击