发送邮件失败,因为SSL证书,如何添加新的证书或检查是否真的是源错误



我是ssl证书的新手,在我们的服务器(规范低于1.1)一个月前"发送邮件"服务停止工作。我跟踪了日志,似乎ssl证书有问题(跟踪以下1.2)

  • 1.1服务器规格:jdk 1.4.2, jboss ga 4.0.2 windows Server 2003
  • 1.2跟踪:

    Caused by: javax.net.ssl.SSLHandshakeException:     sun.security.validator.ValidatorException: Certificate signature validation failed
        at com.sun.net.ssl.internal.ssl.BaseSSLSocketImpl.a(DashoA12275)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA12275)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA12275)
        at com.sun.net.ssl.internal.ssl.SunJSSE_az.a(DashoA12275)
        at com.sun.net.ssl.internal.ssl.SunJSSE_az.a(DashoA12275)
    at com.sun.net.ssl.internal.ssl.SunJSSE_ax.a(DashoA12275)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA12275)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.j(DashoA12275)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA12275)
    at com.sun.net.ssl.internal.ssl.AppInputStream.read(DashoA12275)
    at com.sun.mail.util.TraceInputStream.read(TraceInputStream.java:97)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:201)
    at com.sun.mail.util.LineInputStream.readLine(LineInputStream.java:75)
    at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:1440)
    ... 36 more
     Caused by: sun.security.validator.ValidatorException: Certificate signature validation failed
    at sun.security.validator.SimpleValidator.engineValidate(SimpleValidator.java:137)
    at sun.security.validator.Validator.validate(Validator.java:202)
    at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(DashoA12275)
    at com.sun.net.ssl.internal.ssl.JsseX509TrustManager.checkServerTrusted(DashoA12275)
    ... 48 more
        Caused by: java.security.NoSuchAlgorithmException: 1.2.840.113549.1.1.11 Signature not available
    at java.security.Security.getEngineClassName(Security.java:672)
    at java.security.Security.getEngineClassName(Security.java:683)
    at java.security.Security.getImpl(Security.java:1132)
    at java.security.Signature.getInstance(Signature.java:169)
    at sun.security.x509.X509CertImpl.verify(X509CertImpl.java:425)
    at sun.security.x509.X509CertImpl.verify(X509CertImpl.java:383)
    at sun.security.validator.SimpleValidator.engineValidate(SimpleValidator.java:135)
    ... 51 more
    

引起我注意的是"签名不可用",所以我检查和阅读了很多,但似乎找不到这个问题的根源,没有人对服务器证书或java做任何改变。安全文件,也似乎得到错误的代码出现,当我发送邮件。奇怪的是,所有的东西都在测试服务器上工作,而不是在生产服务器上。

你试图运行java1.4,它不支持sha256算法,

试试http://www.bouncycastle.org/latest_releases.html

或迁移到较新的JDK 1.5/6将执行

最新更新