用java keytool导入OpenSSL签名的证书出现异常:invalid DER-encoded certificate data

我的问题是这样的:
我用java的keytool生成了一个keystore文件,然后又生成了一个csr请求,命令行如下:
keytool -certreq -alias eeeppclient -keystore C:\KEYS\EE\ee-instra-ks.jks -file C:\KEYS\EE\ee-instra-csr.pem

然后我把生成好的csr.pem请求文件发送给CA签名。得到一个cert.pem文件(这是经过签名后的)

然后我试图把认证导入到先前生成好的keystore里,结果java报出异常:
keytool error: java.security.cert.CertificateParsingException: invalid DER-encoded certificate data

然后我与CA联系,对方告诉我他们的证书是用OpenSSL生成的,他们让我转换成der文件,用OpenSSL,命令行如下:

$ openssl x509 -in cert.pem -out cert.der -outform DER

当我生成了der格式的文件用命令导入到keystore文件又报出了异常:
Failed to establish chain from reply异常。

请问谁知道应该如何做?谢谢了,很着急

感谢


问题补充:hareamao 写道理论上肯定可以的,别急。试一试这里所说的方法:
http://www-01.ibm.com/support/docview.wss?uid=swg21280977

用tomcat做服务器?




你这种方案是把文件转成PKCS格式的,是sun jdk默认的。

非常感谢。

不过刚才我又在网上找了一下,如果在执行最后导入命令的时候,把alias换成和以前不同的一个名字就导入成功了。

回答: 用java keytool导入OpenSSL签名的证书出现异常:invalid DER-encoded certificate data

  1. 理论上肯定可以的,别急。试一试这里所说的方法:
    http://www-01.ibm.com/support/docview.wss?uid=swg21280977

    用tomcat做服务器?


新浪微博的api Java SDK,导入eclipse怎么显示有错呢?具体请看这个类weibo4j.http.HttpClient?

  1. Q
    新浪微博的api Java SDK,导入eclipse怎么显示有错呢?具体请看这个类weibo4j.http.HttpClient?

    新浪微博的api Java SDK,导入eclipse怎么显示有错呢?具体请看这个类weibo4j.http.HttpClient?
  2. A
    你去网上搜一下这个包不就完了么。其实这个包是jdk1.6才有的,以前的版本都没有。

vc中用openssl读取x509证书

  1. Q
    生成证书成功,但打开myCer.crt证书读取时,执行到d2i_X509(&x,(const unsigned char)&buf,len) 时,返回空。

    不加下面这几行,就提示uplink错误,加了以后x值为0:

    extern "C"
    {
    #undef APPMACROS_ONLY
    #include<openssl/applink.c
    }

    不知高手这么解决的。。。。。。
  2. A
    帮顶吧。。

OPENSSL 中电子证书的问题

  1. Q
    小弟目前正在学习OPENSSL,在摸索中有以下一点疑问,请大家赐教
    手头一个关于用SSL 服务器端客户端通讯的例子是这么写的(网上关于OPENSSL通讯的好像都是这个例子)
     ssl = SSL_new (ctx);                         CHK_NULL(ssl);    
      SSL_set_fd (ssl, sd);
      err = SSL_connect (ssl);                     CHK_SSL(err);
        
      /* Following two steps are optional and not required for
         data exchange to be successful. */
      
      /* Get the cipher - opt */

      printf ("SSL connection using %s\n", SSL_get_cipher (ssl));
      
      /* Get server's certificate (note: beware of dynamic allocation) - opt */

      server_cert = SSL_get_peer_certificate (ssl);    

      CHK_NULL(server_cert);
      printf ("Server certificate:\n");
      
      str = X509_NAME_oneline (X509_get_subject_name (server_cert),0,0);
      CHK_NULL(str);
      printf ("\t subject: %s\n", str);
       OPENSSL_free (str);

      str = X509_NAME_oneline (X509_get_issuer_name  (server_cert),0,0);
      CHK_NULL(str);
      printf ("\t issuer: %s\n", str);
      OPENSSL_free (str);

      /* We could do all sorts of certificate verification stuff here before
         deallocating the certificate. */

      X509_free (server_cert);
      
      /* --------------------------------------------------- */
      /* DATA EXCHANGE - Send a message and receive a reply. */

      err = SSL_write (ssl, "Hello World!", strlen("Hello World!"));  CHK_SSL(err);
      
      err = SSL_read (ssl, buf, sizeof(buf) - 1);                     CHK_SSL(err);
      buf[err] = '\0';
      printf ("Got %d chars:'%s'\n", err, buf);
      SSL_shutdown (ssl);  /* send SSL/TLS close_notify */

      /* Clean up. */

      closesocket(sd);
      SSL_free (ssl);
      SSL_CTX_free (ctx);


    很显然,根据注释也可以看到,其获得的电子证书实际上没有产生作用,并不影响最后的数据交换,我把关于server_cert的代码都屏蔽掉也能与服务器通讯
    请问各位,电子证书里面不是包含了公钥嘛?为什么没有电子证书也能SSL通讯呢? 我要让服务器端验证客户端的电子证书是否合法,应该怎么作?
  2. A
    楼主,这里有相关双证书配置的文章,你也可以自己google一下
    http://www.javaeedev.com/blog/article.jspx?articleId=ff808081198fb524011993a9bb7a029a

    另外:国内习惯叫做“数字证书”,不是“电子证书”,也有叫做“电子凭证”的,其实叫什么无所谓,方便交流为原则。

CryptoAPI只能导入pvk格式的证书?

  1. Q
    我的个人证书和私钥是分开的, 证书是.der的文件,另一个是.pvk格式的私钥文件。

    使用windows api可以对数据进行签名和验签。

    但是如果私钥不是windows的专有格式,而是通用的格式.der的话,除了使用工具将这个文件转换为pvk格式的方法之外, 使用windows 的API能不能读取这个.der的文件呢?
  2. A
    如果只是提取内容,获取文件内容指针就行了。
    要是要签名验证用cryptuiapi.h 的api

openssl生成根证书问题!紧急!!谢谢!!!

  1. Q
    我用openssl命令生成根证书:
    openssl req -x509 -newkey rsa:1024 -keyform PEM -keyout /openssl/CAkey.pem -outform PEM -out /openssl/CAcert.crt

    私钥可以生成,但生成根证书时出现如下错误:
    unable to find 'distinguished_name' in config problems making Certificate Request
    2796:error:0E06D06A:configuration file routines:NCONF_get_string:no conf or environment variable:.\crypto\conf\conf_lib.c:325

    请各位大虾指点,万分感激!!
  2. A
    郁闷!

有谁对Java或者C的 数字签名 cer证书 密钥 加密算法 这些技术熟悉和了解的,能否简单介绍一下!

  1. Q
    经常听到上面的名词术语,说来惭愧,对于我这样一个做过几年Java开发的人来说,因为行业限制,对于上面的技术还是一知半解,现在想重新补习学习一下上面的技术,请知道的朋友简单说说上面的区别和联系,最好介绍几本这方面的权威书籍,谢谢! 
  2. A
    看看 PKI 方面的介绍。

在向java中导入项目的时候用到import com.sun.java_cup.internal.internal_error;但是,这个是错误的,应该怎么解决

  1. Q
    RT,谢谢了,希望能得到指点,谢谢在向java中导入项目的时候用到import com.sun.java_cup.internal.internal_error;但是,这个是错误的,应该怎么解决

    问题补充:7454103 写道不,他是个类
    在api文档里你是查不到的,因为它并不是基础api所提供的,但是这个类的确是在rt.jar中。你可以到oracle的官方网站上查查看。
    谢谢你的回复,但我去rt.jar这个包里看了,并没有这个类,怎么解决呢?是不是jdk版本的问题?
  2. A
    引用
    谢谢你的回复,但我去rt.jar这个包里看了,并没有这个类,怎么解决呢?是不是jdk版本的问题?



    呵呵  我帮你找到了!
    你好好找找 tomcat6.0 里面也有!
    实在找不到! 明天我给你发! 你可以Q 我  我Q 252821719
    一起研究 一起进步哈!!!

java生成PDF的时候报了 如下异常 怎么回事呢

  1. Q
    用的是struts2+ibatis2.x+spring2.x
    报了 如下异常 :
    java.lang.NoSuchMethodError: com.lowagie.text.pdf.PdfWriter.setRgbTransparencyBlending(Z)V
    at net.sf.jasperreports.engine.export.JRPdfExporter.exportReportToStream(JRPdfExporter.java:455)
    at net.sf.jasperreports.engine.export.JRPdfExporter.exportReport(JRPdfExporter.java:333)
    at org.apache.struts2.views.jasperreports.JasperReportsResult.exportReportToBytes(JasperReportsResult.java:456)
    at org.apache.struts2.views.jasperreports.JasperReportsResult.doExecute(JasperReportsResult.java:365)
    at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186)
    at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:361)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:265)
    at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:163)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
    at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:249)
    at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
    at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
    at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:148)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
    at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:93)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
    at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
    at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
    at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:128)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
    at org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:104)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
    at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
    at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
    at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
    at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:148)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
    at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
    at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:128)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
    at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
    at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
    at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:468)
    at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:39)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:102)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    at java.lang.Thread.run(Thread.java:595)
  2. A
    java.lang.NoSuchMethodError: com.lowagie.text.pdf.PdfWriter.setRgbTransparencyBlending(Z)V
    at net.sf.jasperreports.engine.export.JRPdfExporter.exportReportToStream(JRPdfExporter.java:455)

    你的JasperReport和iText的版本不匹配。

java编写的javamail出现javax.mail.AuthenticationFailedException: 异常

  1. Q
    源代码:
    public static void main(String[] args) throws Exception {
    Properties props = new Properties();
    props.put("mail.smtp.auth", "true");
    props.put("mail.transport.protocol", "smtp");
    props.put("mail.smtp.host", "smtp.sina.com");
    Session session = Session.getInstance(props);
    session.setDebug(true);

    Message message = new MimeMessage(session);
    message.setFrom(new InternetAddress("keyon"));
    message.setText("Hello, I am Keyon Sui!");
    Transport transport = session.getTransport();
    transport.connect("smtp.sina.com", 25, "slyfeng", "sly123");
    transport.sendMessage(message, new Address[]{new InternetAddress("[email protected]")});
    transport.close();
    }

    结果出现错误:
    Exception in thread "main" javax.mail.AuthenticationFailedException: 535 No SMTP server defined. Use real server address instead of 127.0.0.1 in your account.

    at com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate(SMTPTransport.java:826)
    at com.sun.mail.smtp.SMTPTransport.authenticate(SMTPTransport.java:761)
    at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:685)
    at javax.mail.Service.connect(Service.java:295)
    at com.niit.demo01.Demo01.main(Demo01.java:25)
    DEBUG SMTP: AUTH LOGIN failed

    郁闷死了!!!好几天了还没解决哪位大侠帮帮忙,谢谢啦!!
  2. A
    java编写的javamail出现javax.mail.AuthenticationFailedException: 异常
    救星啊,我跟你一样的问题,杀毒软件禁用就好了!