我试图在ubuntu机器中使用"curl"命令连接到https请求 . https请求API已在ubuntu机器中使用tomcat服务器进行配置 . 在运行以下命令时,我收到此 error: SSL:证书使用者名称与目标主机名不匹配 . 因为我对linux系统有天真的了解,正在寻找解决此证书问题的方法 .

另请注意,启用SSL的tomcat服务器在路径上有3个证书:/usr/local/apache-tomcat-7.0.79/conf/chain.pem,/usr/local/apache-tomcat-7.0.79/conf/rootCA . pem,/ usr / local / apache-tomcat-7.0.79 / conf / cacerts

此外,我不能使用curl -k,因为我需要为我的应用程序启用SSL .

System Information: Linux主机3.13.0-126-generic#175-Ubuntu SMP Thu Jul 20 17:33:56 UTC 2017 x86_64 x86_64 x86_64 GNU / Linux

curl -v "https://username:password@by-host:8080/project_name/rest/entity/path"

输出

curl:/usr/local/lib/libcurl.so.4:没有可用的版本信息(curl需要)尝试127.0.0.1 ... 连接到-dfirods0(127.0.0.1)端口8080(#0)密码选择:ALL:!导出:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH 成功设置证书验证位置: CAfile:/etc/ssl/certs/ca-certificates.crt CApath:none * TLSv1.2(OUT),TLS握手,客户端问候(1): TLSv1.2(IN),TLS握手,服务器问候(2): TLSv1.2(IN),TLS握手,证书(11): * TLSv1.2(OUT),TLS警报,服务器问候(2): SSL证书问题:自签名证书*关闭连接0卷曲:(60)SSL证书问题:自签名证书更多详细信息:http://curl.haxx.se/docs/sslcerts.html

curl默认使用证书颁发机构(CA)公钥(CA证书)的“捆绑”执行SSL证书验证 . 如果默认捆绑包文件不足,则可以使用--cacert选项指定备用文件 . 如果此HTTPS服务器使用由捆绑包中表示的CA签名的证书,则证书验证可能由于证书问题而失败(证书可能已过期,或者名称可能与URL中的域名不匹配) . 如果您想关闭curl对证书的验证,请使用-k(或--insecure)选项 .