Docker容器中的HTTPS服务器
我有一个关于如何在Docker中部署https服务器的问题。 由于SSL错误而无法访问内容。 然后我做了一个实验来testingDocker容器中的SSLfunction。 实验是在端口(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 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? 你知道如何解决它? 谢谢。
Dockerfile
ADD ./apache.conf /etc/apache2/sites-enabled/000-default.conf ADD ./ssl/ /ssl/ RUN a2enmod ssl CMD service apache2 start
ssl文件夹包含server.key&server.key文件。
阿帕奇
<virtualHost _default_:443> DocumentRoot "/var/www/" SSLEngine on SSLCertificateFile /ssl/server.crt SSLCertificateKeyFile /ssl/server.key </VirtualHost>