我在如何在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的东西吗?你知道怎么解决吗?谢谢。
答案 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>