Tag: https

主机名称与主体提供的证书主题不匹配,但是完美匹配

我有两台服务器需要使用HTTPS相互通话。 在这种情况下,我们称之为“服务器”和“客户端”,其中“客户端正在对”服务器“进行https呼叫。 在生产中,服务器将具有有效的CA证书,但在testing时我们将使用自签名证书。 据我了解,这是我们必须做的: 创build证书 将其添加到服务器上的密钥库 将其添加到客户端上的受信任的cacerts密钥库(以便在尝试进行https调用时接受此自签名证书) 这一切都完成了,但是当打电话时,我得到这个错误: Caused by: javax.net.ssl.SSLPeerUnverifiedException: Host name 'docker-abc-123' does not match the certificate subject provided by the peer (CN=docker-abc-123, OU=unit, O=org, L=city, ST=area, C=xx) at org.apache.http.conn.ssl.SSLConnectionSocketFactory.verifyHostname(SSLConnectionSocketFactory.java:465) [httpclient-4.5.jar:4.5] at org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:395) [httpclient-4.5.jar:4.5] at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:353) [httpclient-4.5.jar:4.5] at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:134) [httpclient-4.5.jar:4.5] at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:353) [httpclient-4.5.jar:4.5] at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:380) [httpclient-4.5.jar:4.5] at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236) [httpclient-4.5.jar:4.5] at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184) [httpclient-4.5.jar:4.5] at […]

docker和jwilder / nginx-proxy http / https问题

我通过boot2docker在osx上使用boot2docker 。 我有2台主机: site1.loc.test.com和site2.loc.test.com指向了site1.loc.test.com主机的ip地址。 两者都应该可以通过80和443端口。 所以我使用jwilder/nginx-proxy进行反向代理。 但实际上,当我通过docker-compose运行所有的端口时,每次尝试通过80端口打开时,我都会redirect到443 (301 Moved Permanently) 。 可能是我错过了jwilder/nginx-proxyconfiguration中的东西? 泊坞窗,compose.yml proxy: image: jwilder/nginx-proxy volumes: – /var/run/docker.sock:/tmp/docker.sock:ro – certs:/etc/nginx/certs ports: – "80:80" – "443:443" site1: image: httpd:2.4 volumes: – site1:/usr/local/apache2/htdocs environment: VIRTUAL_HOST: site1.loc.test.com expose: – "80" site2: image: httpd:2.4 volumes: – site2:/usr/local/apache2/htdocs environment: VIRTUAL_HOST: site2.loc.test.com expose: – "80"

Docker容器没有连接到https端点

从docker集装箱内,我正在运行 # openssl s_client -connect rubygems.org:443 -state -nbio 2>&1 | grep "^SSL" SSL_connect:before/connect initialization SSL_connect:SSLv2/v3 write client hello A SSL_connect:error in SSLv2/v3 read server hello A 这就是我得到的 我无法连接到Docker容器内的任何https站点。 容器运行在openstack虚拟机上。 虚拟机可以通过https连接。 有什么build议? UPDATE root@ce239554761d:/# curl -vv https://google.com * Rebuilt URL to: https://google.com/ * Hostname was NOT found in DNS cache * Trying 216.58.217.46… * Connected to […]

如何使用Java连接到通过<HostVMIP>:2376监听ssl / tls连接的docker守护进程?

我有一个在VM中运行的docker守护进程,并通过HOST_VM_IP:2376监听来自外部世界的安全连接。 我已经根据docker文档https://docs.docker.com/engine/security/https/生成了ca.pem , cert.pem和key.pem ,并使用它们启动了docker守护进程。 我能够curl到VM端点:端口,以进行REST API调用。 我想使用ca.pem , cert.pem和key.pem并使用JAVA创build安全连接。 如何使用这3个文件在java中创build一个https客户端来进行其他api调用。 我想在UI中的文本框中指定这3个文件的内容,我将在运行时以编程方式检索! 谢谢!!

如何在Docker中为Java应用程序添加HTTPSauthentication?

我有一个Java应用程序,使用证书保护HTTP API的POST请求。 当我第一次在本地运行时,出现以下exception: I/O error on POST request for "https://… sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target; nested exception is javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 为了解决这个问题,我从Firefox导出了证书,并执行以下操作: sudo keytool -import -alias example -keystore /usr/lib/jvm/java-8-oracle/jre/lib/security/cacerts -file /path/to/certificate.der 重新启动,然后它的工作。 […]

设置安全jenkins与docker的主人

我想用docker在ec2上build立一个安全的Jenkins主服务器。 我从这里使用标准jenkinsdocker文件: https ://registry.hub.docker.com/_/jenkins/ 默认情况下,它会打开一个不安全的8080 http端口。 不过,我希望它使用https的标准443端口(首先我想使用自签名SSL证书)。 我在这个主题上进行了一些研究,并find了几个可能的解决scheme。 我并不是真正有经验的docker工人,所以我仍然找不到一个我可以使用或实现的简单的。 以下是我find的一些选项: 在8080上使用标准的jenkins docker,但是在我的ec2实例上configuration一个安全的apache或者nginx服务器,这个服务器会redirect这个trafic。 我不喜欢这个,因为服务器将在docker之外,所以我不能保持它在版本控制 以某种方式修改jenkins docker文件,根据https://wiki.jenkins-ci.org/display/JENKINS/Starting+and+Accessing+Jenkinsconfigurationhttps来启动jenkins。 我不知道该怎么做。 我是否需要创build自己的docker集装箱? 使用像这样一个安全的nginx的docker文件https://registry.hub.docker.com/u/marvambass/nginx-ssl-secure/并以某种方式结合两个docker集装箱或使他们沟通? 不知道该怎么做。 有人可以请推荐我最好的解决scheme吗? PS我不知道ec2会给我带来多less麻烦,但是我认为它只是在安全小组中开放443。

如何访问春季启动应用程序的https URL

我有一个弹簧启动应用程序,它是托pipe的洞察力的DOCKER。 为了使它HTTPS我已经申请: server.ssl.key-store: classpath:keystore.p12 server.ssl.key-store-password: password server.ssl.keyStoreType: PKCS12 server.ssl.keyAlias: tomcat 这是不工作我得到无法得到任何回应。