![](/img/trans.png)
[英]curl “Unknown SSL protocol error in connection” error in server, but works on local
[英]Error “Гknown protocol” when request to server with ssl
我有一些服务,包括下一个脚本: 1. Php cUrl 脚本:
$ch = curl_init();
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_URL, 'https://domain2/file/get');
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5000);
curl_setopt($ch, CURLOPT_TIMEOUT, 5000);
curl_setopt($ch, CURLOPT_FAILONERROR,1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$output = curl_exec($ch);
$info = curl_getinfo($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
它在服务器外部获取文件。
在外部服务器上,我有两个虚拟机。 首先是网络服务器,它通过 nginx 向domain2代理请求。 接下来是它的配置:
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name domain2;
ssl_certificate /etc/ssl/webservice/domain2.crt;
ssl_certificate_key /etc/ssl/webservice/domain2_private.key;
ssl_trusted_certificate /etc/ssl/webservice/domain2_chain.crt;
proxy_ssl_certificate /etc/ssl/webservice/domain2.crt;
proxy_ssl_certificate_key /etc/ssl/webservice/domain2_private.key;
proxy_ssl_trusted_certificate /etc/ssl/webservice/domain2_chain.crt;
proxy_ssl_verify on;
proxy_ssl_session_reuse off;
ssl_verify_client off;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers RC4:HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_pass https://172.30.100.248:443/;
proxy_read_timeout 20m;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
https://172.30.100.248:443是带有 web 服务的本地虚拟机,它提供文件。
根据请求,我有一个错误:
错误:140770FC:SSL 例程:SSL23_GET_SERVER_HELLO:未知协议
并且无法理解这个错误。
我检查了crt,它配置正确。
我发现一个错误:我的 nginx.conf 文件不包含具有 ssl 配置的插件配置文件(但在 nginx 状态下它是活动的并且没有错误)。 有重复的 server_names。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.