ssl错误:无法验证第一个证书(nginx->spring boot)

hlswsv35  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(405)

我有一个ubuntuvm,我正在尝试从positivessl(看起来他们使用comodo)为我的域设置ssl证书。
我最初生成mywebsite.csr和mywebsite.key,然后使用namesheap上的cname记录来验证我的ssl证书。验证后,他们通过电子邮件向我发送mywebsite\u com.crt和mywebsite\u com.ca-bundle。
我使用他们的指示:https://www.namecheap.com/support/knowledgebase/article.aspx/9617/69/how-to-convert-certificates-into-different-formats-using-openssl/ 将其转换为.p12格式。
我的application.properties看起来像:


# The format used for the keystore. It could be set to JKS in case it is a JKS file

server.ssl.key-store-type=PKCS12

# The path to the keystore containing the certificate

server.ssl.key-store=classpath:keystore/mycertificate.p12

# The password used to generate the certificate

server.ssl.key-store-password=redacted

# The alias mapped to the certificate

# server.ssl.key-alias=1

# server.ssl.key-password=redacted

server.ssl.enabled=true

我尝试了多种设置信任存储别名的解决方案,但目前这是我的配置。
我的nginx服务器配置如下所示:

upstream tomcat{
   server localhost:8080;
}

server {  
    listen       443;
    server_name  mywebsite.com;

   ssl on;
   ssl_certificate /root/mywebsite_com.crt;
   ssl_certificate_key /root/mywebsite.key;

    access_log  /var/log/nginx/localhost.access.log  main;

    location / {
            proxy_pass https://tomcat;
            proxy_redirect          off;
            proxy_set_header        X-Real-IP $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header        Host $http_host;
    }
}
}

当我拜访https://mywebsite.com it 在浏览器中工作正常,但当我从 Postman 发出post请求时,它会不断出错,并显示“ssl错误:无法验证第一个证书”
我在我的网站上发布了一个第三方webhook,但它出现了以下错误:

"success": false,

        "error_class": "RestClient::SSLCertificateNotVerified",

        "error_message": "SSL_connect returned=1 errno=0 state=error: certificate verify failed (unable to get local issuer certificate)",

为了解决这个问题,我整个周末都把头撞在墙上,我试着转换成.pem,a.p7b,制作keystore.jks,将bundle和cert合并到我的网站\u chain.crt中。我不知下一步该怎么办,请帮忙。

nuypyhwy

nuypyhwy1#

终于解决了!结果发现,对nginx和spring boot使用cert导致了问题。通过在spring boot上禁用ssl并更改

proxy_pass https://tomcat;

收件人:

proxy_pass http://tomcat;

这个问题已经解决了。

相关问题