我在一家大公司的一个小团队工作。
所有网络流量都经过公司的防火墙,我认为当任何流量进入时,防火墙就像中间人。
我看到的一个例子是使用 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
这为使用像 npm 这样的包管理器带来了挑战。或 composer因为所有 https 由于自签名证书错误而失败,或者根本无法验证证书
我可以得到 npm通过设置配置值 ca="" 和 strict-ssl=false 来工作,但这是一种不安全的做法。
我希望我们的开发团队能够访问包管理器,特别是 npm和 composer
鉴于我无法更改防火墙的工作方式,我是否可以在本地计算机 (Windows 7) 或虚拟机 (Windows server 2008 R2) 上进行任何更改,以允许我们的开发团队完全安全地使用这些包管理器。
谢谢!!
最佳答案
我在公司四处打听,最终找到了合适的人,他说:
All our internet traffic passes through COMPANY. COMPANY intercepts all HTTPS traffic, replaces the certificate and then adds their own certificate. This is so they can decrypt and analyze all encrypted traffic (essentially a man in the middle attack).
The COMPANY root certificate must be trusted to avoid warnings and errors.
我得到了一个链接,指向我可以在哪里下载正确的 pem key 。
使用该 key ,我能够为各种包管理器设置正确的配置选项。
npm
npm config set cafile C:\\path\\to\\cert.pem
npm config set strict-ssl true
(在 Windows 中需要双反斜线)
Composer
必须在 php.ini 中设置某些值才能使 Composer 工作。
openssl.cafile = C:\path\to\cert.pem
curl.cainfo = C:\path\to\cert.pem
对于引发证书错误的任何其他程序(未验证、自签名等),我最终找到了某种配置设置,我可以在其中指向该 pem 文件并让所有程序正常工作。
关于windows - 处理公司防火墙添加自签名证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39639860/
我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0
当我使用Bundler时,是否需要在我的Gemfile中将其列为依赖项?毕竟,我的代码中有些地方需要它。例如,当我进行Bundler设置时:require"bundler/setup" 最佳答案 没有。您可以尝试,但首先您必须用鞋带将自己抬离地面。 关于ruby-我需要将Bundler本身添加到Gemfile中吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4758609/
Rackup通过Rack的默认处理程序成功运行任何Rack应用程序。例如:classRackAppdefcall(environment)['200',{'Content-Type'=>'text/html'},["Helloworld"]]endendrunRackApp.new但是当最后一行更改为使用Rack的内置CGI处理程序时,rackup给出“NoMethodErrorat/undefinedmethod`call'fornil:NilClass”:Rack::Handler::CGI.runRackApp.newRack的其他内置处理程序也提出了同样的反对意见。例如Rack
我有一个ModularSinatra应用程序,我正在尝试将Bootstrap添加到应用程序中。get'/bootstrap/application.css'doless:"bootstrap/bootstrap"end我在views/bootstrap中有所有less文件,包括bootstrap.less。我收到这个错误:Less::ParseErrorat/bootstrap/application.css'reset.less'wasn'tfound.Bootstrap.less的第一行是://CSSReset@import"reset.less";我尝试了所有不同的路径格式,但它
我正在使用Sequel构建一个愿望list系统。我有一个wishlists和itemstable和一个items_wishlists连接表(该名称是续集选择的名称)。items_wishlists表还有一个用于facebookid的额外列(因此我可以存储opengraph操作),这是一个NOTNULL列。我还有Wishlist和Item具有续集many_to_many关联的模型已建立。Wishlist类也有:selectmany_to_many关联的选项设置为select:[:items.*,:items_wishlists__facebook_action_id].有没有一种方法可以
这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub
当谈到运行时自省(introspection)和动态代码生成时,我认为ruby没有任何竞争对手,可能除了一些lisp方言。前几天,我正在做一些代码练习来探索ruby的动态功能,我开始想知道如何向现有对象添加方法。以下是我能想到的3种方法:obj=Object.new#addamethoddirectlydefobj.new_method...end#addamethodindirectlywiththesingletonclassclass这只是冰山一角,因为我还没有探索instance_eval、module_eval和define_method的各种组合。是否有在线/离线资
我注意到类定义,如果我打开classMyClass,并在不覆盖的情况下添加一些东西我仍然得到了之前定义的原始方法。添加的新语句扩充了现有语句。但是对于方法定义,我仍然想要与类定义相同的行为,但是当我打开defmy_method时似乎,def中的现有语句和end被覆盖了,我需要重写一遍。那么有什么方法可以使方法定义的行为与定义相同,类似于super,但不一定是子类? 最佳答案 我想您正在寻找alias_method:classAalias_method:old_func,:funcdeffuncold_func#similartoca
我有带有Logo图像的公司模型has_attached_file:logo我用他们的Logo创建了许多公司。现在,我需要添加新样式has_attached_file:logo,:styles=>{:small=>"30x15>",:medium=>"155x85>"}我是否应该重新上传所有旧数据以重新生成新样式?我不这么认为……或者有什么rake任务可以重新生成样式吗? 最佳答案 参见Thumbnail-Generation.如果rake任务不适合你,你应该能够在控制台中使用一个片段来调用重新处理!关于相关公司
我正在尝试使用Curbgem执行以下POST以解析云curl-XPOST\-H"X-Parse-Application-Id:PARSE_APP_ID"\-H"X-Parse-REST-API-Key:PARSE_API_KEY"\-H"Content-Type:image/jpeg"\--data-binary'@myPicture.jpg'\https://api.parse.com/1/files/pic.jpg用这个:curl=Curl::Easy.new("https://api.parse.com/1/files/lion.jpg")curl.multipart_form_