發現檔案卻是空的,經過調查發現,原來是 https 的問題。
使用 wget fetch 原https的uri 出現下面錯誤
OpenSSL: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
因為是公用機器,然後,uri又是信任的來源,想說直接避過 https
網路上查有幾個方式
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, 'TLSv1');
不過這些option 沒有用生效
還是出現了
```
* About to connect() to pg-media.ksmobile.com port 443 (#0)
* Trying 13.33.151.22... * connected
* Connected to port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
* NSS error -12286
* Closing connection #0
* SSL connect error
```
後來使用了
curl_setopt($ch, CURLOPT_SSLVERSION, 1);
如果要開 curl 的 verbose 可以使用
curl_setopt($ch, CURLOPT_VERBOSE, true);
$fh = fopen("~/test.tmp",'w');
$ch = curl_init();
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_URL, "https://www.google.com");
curl_setopt($ch, CURLOPT_FILE, $fh);
curl_exec($ch);
curl_close($ch);
fclose($fh);
沒有留言:
張貼留言