2016-09-22 50 views
1

我在一家大公司內部的一個小組工作。處理公司防火牆添加自簽名證書

所有的網絡流量都通過公司的防火牆,誰我覺得像在任何流量來自於人在這方面的中間人。

一個例子行爲,我看到這個用時curl

c:\>curl https://www.google.com 
curl: (60) SSL certificate problem: self signed certificate in certificate chain 

所以我檢查證書鏈:

c:\>openssl s_client -connect google.com:443 

,並取回(有一些細節刪除)

Certificate chain 
0 s:/C=US/ST=California/L=Mountain View/O=Google Inc/CN=*.google.com 
    i:/C=US/My Company's Intermediate CA 
1 s:/C=US/My Company's Intermediate CA 
    i:/C=US/My Company's Root CA 
2 s:/C=US/My Company's Root CA 
    i:/C=US/My Company's Root CA 

這是由於自簽名證書的錯誤提供了使用包管理器如npmcomposer一個挑戰,因爲一切https失敗,或者乾脆不能夠驗證證書

我可以得到npm工作通過設置配置值ca=""strict-ssl=false,但這是一個不安全的做法。

我想我們的開發團隊能夠訪問包管理器,特別是npmcomposer

鑑於我不會是能夠改變如何防火牆的工作原理,是否有任何變化。我可以安排本地計算機(Windows 7)或虛擬機(Windows Server 2008 R2),這將使我們的開發團隊能夠安全地充分利用這些軟件包管理器。

謝謝!

回答

1

我問了一圈,在該公司,並最終跟合適的人誰說:

我們所有的互聯網流量通過的公司。公司攔截所有HTTPS流量,替換證書並添加自己的證書。這樣他們就可以解密和分析所有加密的流量(本質上是一個處於中間人攻擊的人)。
公司根證書必須是可信的,以避免警告和錯誤。

我得到了一個鏈接,我可以下載適當的pem密鑰。

使用該密鑰,我可以爲各種軟件包管理器設置適當的配置選項。

NPM

npm config set cafile C:\\path\\to\\cert.pem 
npm config set strict-ssl true 

(所需雙早在Windows斜線)

作曲家

只好在php.ini的作曲家合作,設置一定的值。

openssl.cafile = C:\path\to\cert.pem 
curl.cainfo = C:\path\to\cert.pem 

對於扔證書錯誤的任何其他程序(未驗證,自簽名,等等),我最終找到某種配置的設置,我可以指出的是PEM文件,並得到所有工作。

+0

你的建議給了我提示。對我來說'--cacert'選項需要在Win10實例中指定PEM文件。 – Technext