我有通过virtualbox在Windows上运行的boot2docker 1.4.1。我支持MITM
https证书的代理。我通过在中添加以下行来配置代理/var/lib/boot2docker/profile
:
export HTTP_PROXY=<proxyhost>:80
export HTTPS_PROXY=<proxyhost>:80
DOCKER_TLS=no
EXTRA_ARGS="--insecure-registry index.docker.io"
然而,当我跑docker@boot2docker:~$ docker run hello-world
我得到
Unable to find image 'hello-world:latest' locally
Pulling repository hello-world
FATA[0006] Get https://index.docker.io/v1/repositories/library/hello-world/images
: x509: certificate signed by unknown authority
请帮助我找出忽略证书错误的正确方法。谢谢!
编辑 看起来新的docker仅适用于Windows
10的某些版本
。如果您仍然停留在Windows
7上,我已经更新了以下内容,以反映安装最新版本的docker-toolbox(Docker
1.11.2)时必须纠正“证书链中的自签名证书”错误的步骤。)。
终于在Windows 7上按照以下答案在Windows
7上工作了:https :
//github.com/boot2docker/boot2docker/issues/347
通过运行openssl s_client
-showcerts检查这是您的问题:
docker@boot2docker:~$ openssl s_client -showcerts -CApath . -connect index.docker.io:443
(编辑:从-showcerts中删除了32个,并更正了主机名)
在证书链中,您将看到代理已插入自身,并且验证返回了类似以下的错误
Verify return code: 19 (self signed certificate in certificate chain)
如果您遇到相同的问题,请尝试以下步骤:
docker@boot2docker:~$ sudo mkdir /var/lib/boot2docker/certs/
docker@boot2docker:~$ sudo cp /c/Users/<username>/<folder>/<proxy-cert>.pem /var/lib/boot2docker/certs/
/var/lib/boot2docker/bootlocal.sh
并包含来自https://gist.github.com/irgeek/afb2e05775fff532f960的源代码(我刚刚使用Notepad ++在Windows中创建了文件,并将其复制到与上述步骤类似的正确位置)C:\>docker-machine restart
docker-machine ssh
并验证所做的更改:docker run hello-world
您应该看到包含以下内容的输出:
Hello from Docker.
This message shows that your installation appears to be working correctly.
这应该很容易做到。我可以在Guzze3中找到很多关于如何做到这一点的参考资料,但是它们在Guzze5中不起作用。 我目前正在做的事情: 当我发送请求时,我收到了这个错误: 我在谷歌上找不到任何关于这个错误的有用参考。如果我可以访问旋度选项,那么我可以尝试类似这里建议的解决方案(这是针对Guzzle 3的,因此它不起作用):http://inchoo.net/dev-talk/symfony2-gu
主要内容:自签名证书错误,Maven依赖关系,接受自签名证书通常,开发人员将在本地机器上或项目的开发阶段使用自签名证书。 默认情况下,HttpClient(和Web浏览器)不会接受不可信的连接。 但是,可以配置以允许不可信的自签名证书。 注意:这是一个可能存在安全风险,因为您将其用于生产时,基本上会禁用所有的认证检查,这可通导致受到攻击。 在这个例子中,我们演示了如何忽略Apache HttpClient 4.5中的SSL / TLS证书错误。 自签名证书
问题内容: 如何绕过Apache HttpClient 4.0的无效SSL证书错误? 问题答案: 你需要使用自己的TrustManager创建SSLContext并使用此上下文创建HTTPS方案。这是代码,
问题内容: Apache Http客户端。您可以在此处查看相关代码: 这是每个人都用来忽略SSL证书错误的方法(仅将其设置为登台,它将不会在生产中使用)。但是,我仍然收到以下异常/堆栈跟踪: 任何提示都很好。如果我做的TrustManager错误,或者我应该以不同的方式执行HTTP Post方法,则可以选择两种方式。 谢谢! 问题答案: 首先,不要 忽略 证书错误。与他们打交道。忽略证书错误将打开
问题内容: 我正在尝试打印一个URL(根本不涉及浏览器),但是该URL当前抛出以下内容: 我正在使用JEditorPane的setPage方法调用URL,该方法仅将URL作为参数。假设我无法更改任何服务器端并且仍然需要访问此资源,我将如何去忽略证书错误(或其他使我达到目标的错误)? 通过浏览器访问此URL会告诉我该站点不受信任,并询问我是否要继续。 问题答案: 扩展以覆盖该方法。 在该方法内,您可