Tag: openssl

如何创build一个没有TLS的docker机主机

我有一个运行docker引擎的虚拟机。 现在我想通过docker-machine与我的其他vm连接到这个docker-host。 两个VM之间的networking已桥接,因此可用。 我可以通过curl 192.168.0.102:2375与docker vm通信,并且返回{"message":"page not found"} 创build由docker-machine create dev –driver none -url=tcp://192.168.0.102:2375 docker-machine产生以下 NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS dev – none Running tcp://192.168.0.102:2375 Unknown Unable to query docker version: Get https://192.168.0.102:2375/v1.15/version: x509: cannot validate certificate for 192.168.0.102 because it doesn't contain any IP SANs 正如你可以看到它通过https连接,我不希望它这样做。 我不希望它以这种方式连接。 有没有办法closuresTLS?

获取可能ca.crt的Dockerregistry中的密钥和crt

我尝试连接使用根证书(ca)的Dockerregistry。 现在我已经从我的密钥库中导出了ca.crt : keytool -exportcert -keystore cacerts -alias xxx -file ca.crt 现在我有一个ca.crt 。 在所有docker示例中,我都看到您必须在/etc/docker/certs.d/my.registry.com/上添encryption钥和证书 如何从ca.crt获取key和certificate ?

Azure vm docker create找不到证书'ca.pem'

我想创build一个azure色的docker主机,所以我运行了以下命令(通过azure-cli版本0.8.11和节点版本0.10.33): $ azure vm docker create -v [.. + loads of options..] info: Executing command vm docker create verbose: C:\Users\JAM\.docker\ca-key.pem file was not found verbose: C:\Users\JAM\.docker\ca.pem file was not found verbose: C:\Users\JAM\.docker\server-key.pem file was not found verbose: C:\Users\JAM\.docker\server-cert.pem file was not found verbose: C:\Users\JAM\.docker\key.pem file was not found verbose: C:\Users\JAM\.docker\cert.pem file was not found verbose: […]

在龙卷风服务器上的OpenSSL错误

我configuration我的龙卷风服务器: ssl_options = { "certfile": os.path.join("/tls.crt"), "keyfile": os.path.join("/tls.key") } http = tornado.httpserver.HTTPServer(application, ssl_options=ssl_options) tls.crt和tls.key通配符为我的域,我成功地在我的堆栈中的另一个应用程序后面HAPROXY,后者终止TLS。 启动时的服务器报告OpenSSL版本: OpenSSL 1.0.1k 8 Jan 2015 浏览器 但是,当从浏览器(最终显示“此网页不可用”)获取/出现在Tornado STDOUT中时: [E 150228 15:05:52 ioloop:588] Exception in callback (<socket._socketobject object at 0x7ff342d37050>, <function null_wrapper at 0x7ff342d418c0>) Traceback (most recent call last): File "/usr/local/lib/python2.7/site-packages/tornado/ioloop.py", line 840, in start handler_func(fd_obj, events) File "/usr/local/lib/python2.7/site-packages/tornado/stack_context.py", line 275, […]

Docker的nginx错误:openssl:找不到命令

我使用nginx作为代理来转发请求到其他组件(服务器)。 包括nginx在内的每个组件都是作为docker容器实现的,也就是说,我有一个'nginx-proxy','dashboard-server','backend-server'(REST API)和'landing-server'(着陆页) 。 后面的3个组件都是NodeJS Express服务器,并且在我使用命令docker-compose build时正常工作,没有任何错误,但是当我用docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d启动容器时docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d NodeJS容器工作正常,但是nginx容器使用docker-compose logs nginx-proxy给了我这个错误docker-compose logs nginx-proxy : Attaching to docker_nginx-proxy_1 nginx-proxy_1 | /start.sh: line 5: openssl: command not found nginx-proxy_1 | Creating dhparams…\c nginx-proxy_1 | ok nginx-proxy_1 | Starting nginx… nginx-proxy_1 | 2017/08/23 23:27:20 [emerg] 6#6: BIO_new_file(“/etc/letsencrypt/live/admin.domain.com/fullchain.pem”) […]

Docker客户端证书问题

我正在使用docker rest客户端API来编写将连接到docker守护进程远程的客户端。 我遵循本页提到的文档中提到的步骤: https://docs.docker.com/articles/https/ 并生成所需的证书。 现在,当我尝试使用我的客户端时,我收到以下消息的失败消息: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No subject alternative names present 然后我试图打印我的证书的CN名称,这是我看到的: joes@joes:~$ keytool -printcert -v -file server-cert.pem Owner: CN=123.456.0.10 Issuer: CN=123.456.0.10, O=Internet Widgits Pty Ltd, ST=Some-State, C=IN Serial number: 2 Valid from: Mon Nov 24 19:13:49 CET 2014 until: Sun Dec 19 19:13:49 CET 2055 Certificate fingerprints: MD5: 80:72:7B:43:21:37:BE:48:20:D4:E8:94:6D:2C:73:51 SHA1: 36:9C:FB:D9:1E:1B:3F:D6:1C:32:6C:ED:F0:C6:88:95:44:1A:A4:20 SHA256: […]

linux logstash forwarder ssl IP SANS

我正在学习如何使用logstash和logstash-forwarder。 问题是logstash不允许使用SSL的通信。 我正在使用IP方法而不是DNS。 Kibana,弹性search和Logstash安装在docker容器内。 我已经在容器中生成了一个证书。 在那里,我有/etc/pki/tls/{certs,private}目录,分别持有.crt和.key文件。 我已经将这些复制到docker主机。 如果我运行openssl x509 -noout -text -in logstash-forwarder.crt我可以在证书里面看到我有: X509v3 extensions: X509v3 Subject Alternative Name: IP Address:172.17.0.47 哪个是将要服务kibana的docker集装箱的IP。 在我用作testing主题发送日志(它正在运行一个PHP应用程序和nginx)的docker容器内我有logstash.jsonconfiguration文件,具有: { "network": { "servers": [ "172.17.0.47:5000" ], "timeout": 15, "ssl ca": "/srv/logstash/logstash-forwarder.crt" } 在位置/srv/logstash/logstash-forwarder.crt我可以看到它是相同的密钥,也有行: X509v3 extensions: X509v3 Subject Alternative Name: IP Address:172.17.0.47 在里面。 即SANS是172.17.0.47当我然后运行./logstash-forwarder –config /srv/logstash/logstash.json我得到 2015/07/24 07:57:16.835391从文件设置受信任的CA:/srv/logstash/logstash-forwarder.crt 2015/07/24 07:57:16.835949连接到[172.17.0.47]:5000(172.17.0.47) 2015/07/24 07:57:16.852710与172.17.0.47 […]

Kestrel和OpenSSL密码套件

如何从Linux docker容器中更改OpenSSL / Kestrel可用的密码套件? 首先,让我们从一些环境细节开始: 我们使用通过powershell连接的Linux docker容器(Docker版本17.06.0-ce,build 02c1d87) 它拥有一个用C#编写的ASP.Net Core(netcore 1.1)web应用程序。 主要是针对.NetStandard 1.4 / 1.6写的,但是计划到2.0。 我们使用Kestrel作为Docker容器上的Web服务器 据我所知,Kestrel正在使用openSSL(1.0.1)。 我的Program.cs看起来像这样,它build立了茶隼: builder.UseKestrel(o => o.UseHttps(new HttpsConnectionFilterOptions { SslProtocols = SslProtocols.Tls12 | SslProtocols.Tls11, CheckCertificateRevocation = true, ClientCertificateMode = ClientCertificateMode.AllowCertificate ServerCertificate = new X509Certificate2(certificate.Pfx, certificate.Password) })) .UseUrls(bindTo); 关键是这样的: SslProtocols = SslProtocols.Tls12 | SslProtocols.Tls11, 无论我在这里设置了什么值(Tls12,Tls11,Tls或其中的任何子集),它似乎都不会影响可用于连接的密码套件。 我将通过sslLabs报告来查看我的URL,由于旧协议上的RC4密码的可用性,该报告被限制在B级。 我想sorting的是这个问题,我相信只要支持TLS1.1和1.2就可以解决这个问题。 但是,举个例子,正如你上面所看到的,我没有提到TLS 1.0,但是它在报告中可以find,这有点让我难住。 是实际使用的代码,还是从其他地方获得可用的密码? 因为它看起来像SslProtocols属性的值没有区别。 当使用Apache时,你可以通过configuration文件(httpd.conf)configuration可用的密码套件,所以我认为kestrel可能有一个文件来做同样的事情,但我没有设法find一个。 […]

使用自签名证书configuration本地registry

我想configuration一个本地dockerregistry与自我签署证书,我将在我的本地networking内使用。 我遵循docker手册[1,2]的指示,但仍然遇到错误。 确切地说,我的问题在于。 我在本地registry机器上创build一个自签名证书: openssl req \ -newkey rsa:4096 -nodes -sha256 -keyout certs/domain.key \ -x509 -days 365 -out certs/domain.crt \ -subj "/C=US/ST=Oregon/L=Portland/O=Company Name/OU=Org/CN=openmpi-dockerregistry.local" 我把这个证书放到/etc/docker/certs.d/openmpi-dockerregistry:443/ca.crt本地机器的/etc/docker/certs.d/openmpi-dockerregistry:443/ca.crt 。 然后我开始注册并在那里推送一个图像。 由于我的networking中没有configurationDNS,所以我只是把一个入口放到/etc/hosts 。 接下来我尝试在本地机器上拉取图像,但是这个操作失败了: $ docker run -it openmpi-dockerregistry.local:443/hello-world Unable to find image 'openmpi-dockerregistry.local:443/hello-world:latest' locally docker: Error response from daemon: Get https://openmpi-dockerregistry.local:443/v2/: x509: certificate is not valid for any names, […]

Docker执行与OpenSSL和标准input,标准输出

我试图用OpenSSL和这样的pipe道使用docker exec。 我有一个运行称为test1的容器。 1. openssl genrsa -des3 -passout pass:123 2048 | docker exec -i test1 sh -c 'cat >/key.pem 2. docker exec test1 cat key.pem —–BEGIN RSA PRIVATE KEY—– Proc-Type: 4,ENCRYPTED DEK-Info: DES-EDE3-CBC,DE60A9F33B9E508D /uJYBfM6YwCkIgrgQSH…… 3. docker exec test1 cat key.pem | openssl req -subj '/CN=client' -new -key -out client.csr -passin pass:123 write /dev/stdout: broken pipe […]