处理添加自签名证书的公司防火墙

tkw*_*rgs 8 windows ssl networking certificate composer-php

我在一家大公司的一个小团队中工作。

所有网络流量都会经过公司的防火墙,我认为当任何流量进入时,防火墙就像中间人一样。

我看到这一点的一个例子是在使用时curl

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

所以我检查证书链:

c:\>openssl s_client -connect google.com:443
Run Code Online (Sandbox Code Playgroud)

然后返回(删除一些细节)

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
Run Code Online (Sandbox Code Playgroud)

这给使用npmComposer等包管理器带来了挑战,因为https由于自签名证书错误,或者根本无法验证证书,一切都会失败

我可以通过设置配置值和来让npm工作,但这是一种不安全的做法。ca=""strict-ssl=false

我希望我们的开发团队能够访问包管理器,特别是npmcomposer

鉴于我无法更改防火墙的工作方式,我可以在本地计算机 (Windows 7) 或 VM (Windows Server 2008 R2) 上进行任何更改,以便我们的开发团队能够充分利用这些软件包管理者安全。

谢谢!!

tkw*_*rgs 6

我在公司打听了一下,最终找到了合适的人,他说:

我们所有的互联网流量都经过公司。COMPANY 拦截所有 HTTPS 流量,替换证书,然后添加自己的证书。这样他们就可以解密和分析所有加密流量(本质上是中间人攻击)。
必须信任 COMPANY 根证书以避免出现警告和错误。

我得到了一个可以下载正确的 pem 密钥的链接。

使用该键,我可以为各种包管理器设置正确的配置选项。

新项目管理

npm config set cafile C:\\path\\to\\cert.pem
npm config set strict-ssl true
Run Code Online (Sandbox Code Playgroud)

(在 Windows 中需要双反斜杠)

作曲家

必须在 php.ini 中设置某些值才能使 Composer 工作。

openssl.cafile = C:\path\to\cert.pem
curl.cainfo = C:\path\to\cert.pem
Run Code Online (Sandbox Code Playgroud)

对于任何其他引发证书错误(未验证、自签名等)的程序,我最终找到了某种配置设置,我可以在其中指向该 pem 文件并让所有内容正常工作。