2016-11-24 73 views
-1

我沒有找到正確的解決方案,因此,請將MacOS Sierra上golang的URL調用到使用自簽名SSL證書的服務器。在MacOS上的golang中使用帶有http.Get的自簽名SSL

我嘗試運行一個程序,該程序使用http查詢的https://github.com/olivere/elastic,所以我沒有對代碼源的「控制」。

我要尋找一個解決方案,如:通過設置一個bash變量

  • 禁用SSL支票去(?出口 GOLANG_SSL = FALSE)
  • 設置自簽名certif到golang

歡迎任何其他想法!

的Merci,

+4

的DUP [這](HTTP:/ /stackoverflow.com/q/12122159/1892060)? –

+1

如果你在談論NewClient函數,你應該提交一個PR,增加一個OptionFunc https://godoc.org/gopkg.in/olivere/elastic.v5#ClientOptionFunc - 它可以將InsecureSkipVerify設置爲true來表示底層http。客戶。甚至更好:允許包用戶提供他們自己的http.Client的選項。 – elithrar

+0

elithrar是對的。 SetHttpClient允許您設置InsecureSkipVerify並忽略證明驗證。但是還沒有提到的是,新的golang 1.8允許將自簽名證書設置爲根證書鏈(將自簽名證書放在Transport.TLSClientConfig的RootCAs中)。 – lofcek

回答

-1

您應該安裝(信任)在主機操作系統的自簽名證書運行轉到客戶端。

沒有「爲golang設置自簽名證書」,而是「將自簽名證書設置爲OS」。

至於如何做到這一點,這將取決於哪個操作系統您在客戶機上運行,​​但快速谷歌搜索可以幫你:install self-signed certificate in Windows/Linux/MacOS/FreeBSD/etc...

+0

那不是在MacOS上工作,知道的問題,但沒有真正解決。謝謝 –

+0

你永遠不需要通過操作系統安裝證書來使用它作爲一個TLS連接CA. – JimB

+0

@JimB我知道,我永遠不會使用服務的工作一個自簽名證書,但是作者提到他無法訪問源代碼。 – peiiion