Ssl
用於 tomcat 的 Cyclos Docker SSL 實現
我在docker容器中配置了tomcat,如下所示
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true"> <SSLHostConfig> <Certificate certificateKeystoreFile="my.jks" type="RSA" /> </SSLHostConfig> </Connector> <Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol" maxThreads="150" SSLEnabled="true" > <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" /> <SSLHostConfig> <Certificate certificateKeyFile="/etc/letsencrypt/live/example.com/privkey.pem" certificateFile="/etc/letsencrypt/live/example.com/cert.pem" certificateChainFile="/etc/letsencrypt/live/example.com/chain.pem" type="RSA" />
重新啟動 docker 容器,但無法通過 https 訪問
my.jks 儲存在 tomcat/conf 目錄中。
我配置docker容器如下:
docker run -d \ --name=nameofcontainer \ -p 80:8080 \ -p 443:8443 \ --net=cyclos-net \ --cap-add=NET_ADMIN \ -e DB_HOST=cyclos-db \ -e DB_NAME=cyclos \ -e DB_USER=cyclos \ -e DB_PASSWORD=cyclos \ image-id
但是無法通過 https 或埠 8443 訪問網站
根據SSL/TLS 配置如何:
要定義 Java (JSSE) 連接器,無論是否載入了 APR 庫,請使用以下選項之一:
<!-- Define a HTTP/1.1 Connector on port 8443, JSSE NIO implementation --> <Connector protocol="org.apache.coyote.http11.Http11NioProtocol" port="8443" .../> <!-- Define a HTTP/1.1 Connector on port 8443, JSSE BIO implementation --> <Connector protocol="org.apache.coyote.http11.Http11Protocol" port="8443" .../>
為什麼在同一個埠上同時使用兩個連接器?
您應該只使用其中之一。或者在不同的埠上配置它們。