Docker容器中的HTTPS服务器

时间:2016-09-22 04:34:27

标签: linux ssl docker https tls1.2

我在如何在docker中部署https服务器时遇到问题。由于SSL错误,它无法访问内容。然后我做了一个实验来测试docker容器中的SSL功能。实验是侦听端口(tls),如果有连接,则发送回文件内容。

我的Dockerfile就像:

FROM ruanhao/centos-dev
EXPOSE 8443
COPY banner .
COPY server.crt.pem .
COPY server.key.pem .
CMD socat -U openssl-listen:8443,reuseaddr,cert=server.crt.pem,key=server.key.pem,verify=0,fork open:banner

我将docker作为docker run -d -p 8443:8443 --name tls -it ruanhao/socat-tls

运行

然后我用curl来获取内容。 curl -k -v -L https://192.168.99.100:8443,但失败了:

* Rebuilt URL to: https://192.168.99.100:8443/
*   Trying 192.168.99.100...
* Connected to 192.168.99.100 (192.168.99.100) port 8443 (#0)
* Unknown SSL protocol error in connection to 192.168.99.100:-9850
* Closing connection 0
curl: (35) Unknown SSL protocol error in connection to 192.168.99.100:-9850

我不知道为什么会这样。有什么我不知道在Docker中使用TLS的东西吗?你知道怎么解决吗?谢谢。

1 个答案:

答案 0 :(得分:0)

<强> Dockerfile

ADD ./apache.conf /etc/apache2/sites-enabled/000-default.conf
ADD ./ssl/ /ssl/
RUN a2enmod ssl
CMD service apache2 start 

ssl文件夹包含server.key&amp; server.key文件。

<强>阿帕奇

<virtualHost _default_:443>

DocumentRoot "/var/www/"

SSLEngine on
SSLCertificateFile /ssl/server.crt
SSLCertificateKeyFile /ssl/server.key
</VirtualHost>