`
gwh_08
  • 浏览: 335317 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SSL:No Certificate file specified or invalid file format

    博客分类:
  • ssl
 
阅读更多

tomcat6.0.35配置SSL

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" 
               keystoreFile="C:/server2.jks"
               keystorePass="123456" 
			   truststoreFile="C:/server2.jks" truststorePass="123456"
   />

 没问题。

同样把:

truststoreFile="C:/server2.jks" truststorePass="123456"

 去掉,配置:

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" 
               keystoreFile="C:/server2.jks"
               keystorePass="123456" 
   />

 也没问题。

见:http://gwh-08.iteye.com/blog/1517593

但是配置,采用如下命令生成的密钥

keytool -genkey -validity 36000 -alias www.guwh.org -keyalg RSA -keystore d:\gu.keystore -storepass 123456 -dname "CN=wh, OU=wh, O=wh, L=wh, ST=BJ, C=CN"

 

keytool -genkey -validity 36000 -alias www.zlex.org -keyalg RSA -keystore d:\zlex.keystore -storepass 123456 -dname "CN=zlex, OU=zlex, O=zlex, L=zlex, ST=BJ, C=CN"

keytool -export -keystore d:\zlex.keystore -alias www.zlex.org -file d:\zlex.cer -rfc

 

keytool -import -alias www.zlex.org -file d:/zlex.cer -keystore d:/gu.keystore 

 配置:server.xml

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS"
			   keystoreFile="D:/mygu.keystore"  
        keystorePass="123456" 
			   />

 

就会报:

2013-1-30 10:09:32 org.apache.coyote.http11.Http11AprProtocol init
严重: Error initializing endpoint
java.lang.Exception: No Certificate file specified or invalid file format
	at org.apache.tomcat.jni.SSLContext.setCertificate(Native Method)
	at org.apache.tomcat.util.net.AprEndpoint.init(AprEndpoint.java:733)
	at org.apache.coyote.http11.Http11AprProtocol.init(Http11AprProtocol.java:107)
	at org.apache.catalina.connector.Connector.initialize(Connector.java:1049)
	at org.apache.catalina.core.StandardService.initialize(StandardService.java:703)
	at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:838)
	at org.apache.catalina.startup.Catalina.load(Catalina.java:538)
	at org.apache.catalina.startup.Catalina.load(Catalina.java:562)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:261)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
2013-1-30 10:09:32 org.apache.catalina.core.StandardService initialize
严重: Failed to initialize connector [Connector[HTTP/1.1-443]]
LifecycleException:  Protocol handler initialization failed: java.lang.Exception: No Certificate file specified or invalid file format
	at org.apache.catalina.connector.Connector.initialize(Connector.java:1051)
	at org.apache.catalina.core.StandardService.initialize(StandardService.java:703)
	at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:838)
	at org.apache.catalina.startup.Catalina.load(Catalina.java:538)
	at org.apache.catalina.startup.Catalina.load(Catalina.java:562)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:261)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)

 错误。

解决办法是采用下面的配置:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS"
			   keystoreFile="D:/gu.keystore"  
        keystorePass="123456" 
			   />

 网上说这其实是:

就是将protocol="HTTP/1.1"替换为protocol="org.apache.coyote.http11.Http11Protocol",问题得以解决;

APR给Tomcat的性能提升起到很大作用,建议配置APR方式。

题外话:

如果辨别Tomcat是否采用APR:

启动Tomcat时,如果采用APR,日志中会有如下信息:

信息: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].

 如果没有采用APR,启动时则显示类似的信息:

信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: ....后面省略  

 

 

 

 

 

分享到:
评论
1 楼 ebony_fan 2016-07-06  
遇到跟楼主一样的问题,根据你的解决办法已经解决了,感谢分享~

相关推荐

    WebStorm 启动失败 ErrOr: ENOENTI: no such file or directory, open ‘D:\project \xxx\log-2019-03-29. log

    WebStorm 启动失败 ErrOr: ENOENTI: no such file or directory, open ‘D: \project \Areallagic\test \logs \log-2019-03-29. log 问题描述: 最近刚开始学习node.js,使用webStorm写demo时经常报这个错。 使用这个...

    报错 No input file specified的解决办法

    你可以参考提供的资源,如 "No input file specified的解决方法-百度经验.url" 和 "报错 ”No input file specified.“ 排查 - zh_mead的博客 - CSDN博客.url",这些链接可能提供了更具体的步骤和案例。 在实际操作...

    nginx提示No input file specified怎么办.docx

    Nginx 提示 "No input file specified" 的解决方法 Nginx 是一个流行的开源 web 服务器软件,然而,在使用 Nginx 时,有时可能会遇到 "No input file specified" 的错误提示,这篇文章将详细讲解该错误的解决方法。...

    提示No input file specified的解决方法.docx

    "No input file specified解决方法" 在Web服务器中,"No input file specified"是常见的错误信息,出现该错误的原因有多种,例如PHP.ini文件配置不正确、Apache或Nginx服务器配置不当等。下面将从IIS、Apache和...

    提示No input file specified的解决方法

    解决 No input file specified 的方法 在编程中,我们经常会遇到 "No input file specified" 的提示,这个错误信息很容易让人感到困惑和沮丧。实际上,这个错误信息是由于服务器或编程语言的配置问题引起的。今天,...

    nginx+php出现No input file specified解决办法

    今天在自己本地的开发环境突然出现了No input file specified错误,反复检查返现自己的配置文件和配置路径以及权限都没有问题。经过反复的排查终于发现了问题,现将问题及解决分享如下: 问题原因分析 在GitHub上...

    详解no input file specified 三种解决方法

    在Apache服务器上遇到“No input file specified”错误时,可以通过修改.htaccess文件来解决。具体操作为确保`.htaccess`文件中启用了重写引擎(`RewriteEngine on`),然后添加一个条件判断,排除`index.php`、`...

    电脑提示“No input file specified”怎么办.docx

    ### 电脑提示“No input file specified”处理方法 #### 一、理解“No input file specified”错误 “No input file specified”是一个常见的错误提示,通常出现在Web服务器(如IIS、Apache、Nginx)尝试运行PHP...

    【LNMP】提示Nginx PHP “No input file specified”错误的解决办法

    通过对LNMP环境中“No input file specified”错误的深入分析,我们了解了该错误产生的主要原因及其解决方法。通过调整PHP配置文件、文件权限以及重启LNMP服务等步骤,可以有效地解决这一问题。在实际操作过程中,还...

    vs常见编译错误集锦

    vs常见编译错误集锦 vs常见编译错误集锦 vs常见编译错误集锦

    Android wifi

    在Android平台上,Wi-Fi功能是移动设备连接无线网络的关键组件。`Android Wi-Fi`是一个重要的API,开发者可以利用它来实现各种与Wi-Fi相关的功能,如扫描可用的Wi-Fi网络、建立连接、管理网络配置以及处理Wi-Fi状态...

    APACHE支持.htaccess伪静重写出错 No input file specified的解决方案

    在本文中,我们将深入探讨一个常见的问题,即在使用`.htaccess`进行伪静态重写时遇到"No input file specified"错误的解决方法。 首先,这个错误通常发生在Apache服务器使用FastCGI模式运行PHP时。FastCGI是一种...

    关于PHP5.6+版本“No input file specified”问题的解决

    在PHP开发过程中,有时会遇到“No input file specified”的错误提示,这通常发生在PHP5.6及以上版本,尤其是在使用FastCGI模式时。这个错误是由于服务器无法正确处理请求路径中的参数导致的,特别是与PATH_INFO相关...

    使用mdadm创建软RAID

    "使用mdadm创建软RAID详解" 在Linux系统中,mdadm是一个强大的工具,可以用来创建软RAID(Software RAID),软RAID可以将多个硬盘组合成一个逻辑硬盘,以提高存储容量和读写性能。本文将详细介绍使用mdadm创建软...

    软件发布SignTool Error 处理方法

    VS2005/VS2008软件发布问题:SignTool Error: An error occurred while attempting to sign 处理方法

    从零开始搭建一个基于Webpack的Vue开发环境

    npm install --save-dev webpack webpack-cli vue-loader vue-template-compiler css-loader style-loader file-loader url-loader html-webpack-plugin ``` 4. **创建Webpack配置文件**: 在项目根目录下创建一...

Global site tag (gtag.js) - Google Analytics