1. 程式人生 > >Linux使用curl訪問https站點時報錯彙總

Linux使用curl訪問https站點時報錯彙總

以下是curl在訪問https站點時常見的報錯資訊

1.Peer’s Certificate issuer is not recognized

[[email protected] nginx]# curl https://m.ipcpu.com
curl: (60) Peer’s Certificate issuer is not recognized.
More details here: http://curl.haxx.se/docs/sslcerts.html

此種情況多發生在自簽名的證書,報錯含義是簽發證書機構未經認證,無法識別。

解決辦法是將簽發該證書的私有CA公鑰cacert.pem檔案內容,追加到/etc/pki/tls/certs/ca-bundle.crt。

我們在訪問12306.cn訂票網站時也報了類似的錯誤。

[[email protected] ~]# curl https://kyfw.12306.cn/
curl: (60) Peer’s certificate issuer has been marked as not trusted by the user.
More details here: http://curl.haxx.se/docs/sslcerts.html

2.SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

[[email protected]

aa]# curl https://github.com/
curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
More details here: http://curl.haxx.se/docs/sslcerts.html

此問題多是由於本地CA證書庫過舊,導致新簽發證書無法識別。

經排查,github.com證書是由GTE CyberTrust Root簽發,現行證書時間是:

  • 不早於(1998/8/13 0:29:00 GMT)
  • 不晚於(2018/8/13 23:59:00 GMT)

而在我們的Redhat5.3系統中ca-bundle.crt檔案發現,GTE CyberTrust Root的時間已經過期。

Issuer: C=US, O=GTE Corporation, CN=GTE CyberTrust Root
Validity
Not Before: Feb 23 23:01:00 1996 GMT
Not After : Feb 23 23:59:00 2006 GMT

解決辦法是更新本地CA證書庫。

方法一:

下載http://curl.haxx.se/ca/cacert.pem 替換/etc/pki/tls/certs/ca-bundle.crt

方法二:

使用update-ca-trust 更新CA證書庫。(CentOS6,屬於ca-certificates包)

3.unknown message digest algorithm

[[email protected]_YF_2.7 ~]#curl https://www.alipay.com
curl: (35) error:0D0C50A1:asn1 encoding routines:ASN1_item_verify:unknown message digest algorithm
此問題多由證書本地openssl不能識別SSL證書籤名演算法所致。www.alipay.com 使用了SHA-256 RSA 加密演算法。而openssl在OpenSSL 0.9.8o才加入此演算法。

解決辦法是升級本地openssl。

在我的作業系統RedHat5.3中,yum 升級openssl到openssl-0.9.8e-22.el5 就可以識別SHA-256演算法。原因是Redhat每次都是給0.9.8e打補丁,而不是直接更換版本。在srpm包中我找到了這個補丁。

Summary: The OpenSSL toolkit
Name: openssl
Version: 0.9.8e
...
Patch89: openssl-fips-0.9.8e-ssl-sha256.patch

4.JAVA和PHP的問題

java和php都可以程式設計來訪問https網站。例如httpclient等。

其呼叫的CA根證書庫並不和作業系統一致。

JAVA的CA根證書庫是在 JRE的$JAVA_HOME/jre/lib/security/cacerts,該檔案會隨著JRE版本的升級而升級。可以使用keytool工具進行管理。

PHP這邊我沒有進行測試,從php安裝curl元件的過程來看,極有可能就是直接採用的作業系統curl一直的資料。

當然PHP也提供了 curl.cainfo 引數(php.ini)來指定CA根證書庫的位置。

相關推薦

Linux使用curl訪問https站點時報彙總

以下是curl在訪問https站點時常見的報錯資訊 1.Peer’s Certificate issuer is not recognized [[email protected] nginx]# curl https://m.ipcpu.com curl: (60) Peer’s Certifi

用curl訪問HTTPS站點並登錄(對HTTP返回的結果特別清楚)

type .com nss int lai on() tftp cap 參數 開發網站,少不了測試。現在的網站為了加強安全性,都啟用了HTTPS協議。所謂HTTPS,也就是HTTP文本在SSL協議中傳輸。用curl命令行來測試HTTPS站點是個很有用的功能,寫點腳本,就可以

python爬蟲訪問https網站報解決方案ERROR:ssl_client_socket_impl.cc(1098)] handshake failed

報錯資訊: [3488:1356:0512/211222.342:ERROR:ssl_client_socket_impl.cc(1098)] handshake failed; returned -1, SSL error code 1, net_error -101 Chrome瀏覽器解決方

用curl訪問HTTPS站點並登入

開發網站,少不了測試。現在的網站為了加強安全性,都啟用了HTTPS協議。所謂HTTPS,也就是HTTP文字在SSL協議中傳輸。用curl命令列來測試HTTPS站點是個很有用的功能,寫點指令碼,就可以做功能測試。假定Ubuntu系統執行著一個HTTPS站點,用CppCMS編寫,

用curl訪問HTTPS站點並登入(對HTTP返回的結果特別清楚)

      現在的網站為了加強安全性,都啟用了HTTPS協議。所謂HTTPS,也就是HTTP文字在SSL協議中傳輸。用curl命令列來測試HTTPS站點是個很有用的功能,寫點指令碼,就可以做功能測試。       假定Ubuntu系統執行著一個HTTPS站點,用CppCMS

curl+個人證書訪問https站點

目前,大公司的OA管理系統(俗稱內網),安全性要求較高,通常採用https的雙向 認證模式。 首先,什麼是https,簡單的說就是在SSL協議之上實現的http協議(get、post等操作) 什麼是雙向認證模式?對於面向公眾使用者的https的網站,大部分屬

iOS 開發-SDWebImage訪問HTTPS站點獲取圖片資源失敗解決辦法

最簡單的粗暴的方法: - (void)sd_setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder options

IIS 使用OpenSSL 生成的自簽名證書,然後使用SingalR 客戶端訪問Https 站點通信

需要 center html sys ask proxy 客戶端訪問 The con 使用SignalR 的客戶端去發送消息給使用 https 部署的站點,官方文檔目前並沒有詳細的教程,所以在此記錄下步驟: 使用管理員身份打開cmd 窗口,選擇一個整數保存文件夾的地

遠程訪問Function時報Remote table-valued function calls are not allowed.

dbo 訪問 遠程 his 解決 all 原因 rem tab 開始是這樣調用的:select * from [LinkedServer].[db name].dbo.[function name](param1, param2)原因: Only table-valued

關於vs 打開網站時報 配置iis express失敗 無法訪問IIS元數據庫...

ros shell 網上 由於 pro mage version images logs 關於vs 打開網站時報錯 配置iis express失敗 無法訪問IIS元數據庫... 我安裝了vs2015,一開始創建項目,網站都沒問題,有一次突然打開項目時報錯,瞬間懵逼,我啥都沒

關於文件保存/關閉時報:文件正由另一進程使用,因此該進程無法訪問此文件。

讀取 顯示 對象 必須 文件 ons 完整 comment static 起因:最近給Unity上的遊戲寫關於存檔的腳本,使用了xml。然後發現每次文件保存時,也就是調用XmlDocument.Save()對象方法的時候就會報錯說該文件路徑分享異常啥的我也不記得了。然後搞了

android 微博sdk 整合 檔案不存在(8998) 您所訪問站點在新浪微博的認證失敗,誤碼 21322

問題:使用mSsoHandler.authorize(new AuthListener()); 請求授權 微部落格戶端報 檔案不存在(8998)             使用mSsoHandler.authorizeWeb(new Au

kibana加訪問控制時報--Kibana did not load properly.Check the server output for more information. nginx使用者認證與htpasswd命令

錯誤   在使用kibana的時候,我們需要對可以進行日誌訪問進行控制,x-pack外掛是最好的選擇,但是kibana的x-pack外掛是收費的,我們本著節約資源的理念(公司的錢也是錢啊,哈哈),我決定使用nginx的訪問控制來進行使用者認證,在經過nginx使用者認證與htpasswd命令配置後,我們進行

Laravel5.5 訪問api時報:QueryException could not find driver

 程式碼搬在ubuntu伺服器上時報的錯。 原因 未設定好php擴充套件。 解決方法 1、找到php配置檔案 vim /etc/php/7.0/apache2/php.ini 2、在880行左右找到下面一行,並取消註釋 extensio

win10 ent安裝Django時報:Could not install packages due to an EnvironmentError: [WinError 5] 拒絕訪問

- Could not install packages due to an EnvironmentError: [WinError 5] 拒絕訪問。: 'c:\\program files\\python37\\Lib\\site-packages\\pytz'Consider using

BIEE遷移過後,在設置用戶登錄默認頁時報:已拒絕用戶訪問路徑/user/......

拒絕 icon .com data data- gif class biee loading BIEE遷移過後,在設置用戶登錄默認頁時報錯:已拒絕用戶訪問路徑/user/......

使用雲負載時將http的請求轉發至https時報:“ERR_TOO_MANY_REDIRECTS”!

pro 主機 網站 環境部署 後端 prot enable ext 但我 問題描述: 新業務正式環境部署,使用雲負載(有http監聽也有https監聽)在我向我的 Web 服務器添加重定向邏輯後,我的網站停止工作,並且我收到錯誤 ERR_TOO_MANY_R

前後端分離,https站點無法通過Ajax訪問http資源(Mixed Content,The page at 'https://xxx.com' was loaded over HTTPS)

目前Web開發,大部分公司都用的是前後端分離模式,即前端專注於前端頁面互動,後端專注於功能實現及提供Web Api介面。 在某次新站點的開發過程中,為了網站的安全性,要求Web站點使用https協議,在部署到QA環境時,發現呼叫介面報如下的錯: 從提示的內容來看,大致可推斷出是因為站點是https協議

【 Linux學習】Linux環境下利用wget下載https連結內容時報:無法本地校驗頒發者的許可權。 要以不安全的方式連線至 ,使用“--no-check-certificate”

一、問題描述 今天在CenterOS系統上使用wget命令下載一個https連結的內容時報錯,如下所示: [[email protected] /]# wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-

eclipse訪問tomcat正常顯示,輸入專案名訪問主頁時報404

在搭建框架的時候,tomcat正常啟動,位址列裡訪問tomcat也能正常顯示,但是輸入專案名之後,就會報404:The requested resource is not available錯誤。 效果如下: 經過仔細分析,發現web.xml裡welcome-file-