[英]Running Bamboo Server over HTTPS with Self-Signed Certificate
Bamboo 服務器運行在帶有公共鏡像的 Docker Container (linux) 上。
docker pull atlassian/bamboo-server:latest
它可以在 http://localhost:8085 訪問,但我們想使用 HTTPS 和自簽名證書來運行我們的 Bamboo 服務器。 您能否解釋一下“如何使用 HTTPS 保護在 Docker 容器上運行的 Bamboo 服務器”的步驟? 我閱讀了 Atlassian 文章,但似乎沒有包含足夠的信息。
我們可以使用Ngnix(如果需要的話),但是我還沒有開始,因為我對配置不熟悉。
盡管我在 Docker 主機上生成了 .keystore 文件並將環境用於 map 和容器:
{$JAVA_HOME keytool -genkey} 或
{openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -sha256 -days 365}
docker 運行 -d -v 竹卷最新:/var/atlassian/application-data/bamboo --init -p 54663:54663 -p 8443:8443 -e JVM_MINIMUM_MEMORY=3g -e JVM_MAXIMUM_MEMORY=3g -e ATL_TOMCAT_SCHEME=https -e ATL_TOMCAT_SCHEME= true -e ATL_TOMCAT_SSL_ENABLED=true -e ATL_TOMCAT_SSL_PROTOCOL=TLS -e ATL_TOMCAT_KEYSTORE_FILE=/root/.keystore -e ATL_TOMCAT_KEYSTORE_PASS=changeit atlassian/bamboo
它拋出一個錯誤:
02-Sep-2022 07:59:21.337 SEVERE [main] org.apache.catalina.util.LifecycleBase.handleSubClassException Failed to start component [Connector[HTTP/1.1-8085]]
org.apache.catalina.LifecycleException: Protocol handler start failed
at org.apache.catalina.connector.Connector.startInternal(Connector.java:1077)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:449)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.startup.Catalina.start(Catalina.java:772)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
Caused by: java.lang.IllegalArgumentException: /root/.keystore (Permission denied)
at org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:107)
at org.apache.tomcat.util.net.AbstractJsseEndpoint.initialiseSsl(AbstractJsseEndpoint.java:71)
任何幫助都會很受重視。
thsi 為我解決了問題(docker-compose 文件)
environment:
- JVM_MINIMUM_MEMORY=4000m
- JVM_MAXIMUM_MEMORY=8000m
- ATL_TOMCAT_PORT=8443
- ATL_TOMCAT_SSL_ENABLED=true
- ATL_TOMCAT_SCHEME=https
- ATL_TOMCAT_SECURE=true
- ATL_TOMCAT_SSL_CERTIFICATE_FILE=/opt/atlassian/bamboo/conf/ssl/xxxxxx.com.crt
- ATL_TOMCAT_SSL_CERTIFICATE_KEY_FILE=/opt/atlassian/bamboo/conf/ssl/xxxxxx.com.key
volumes:
- bamboo:/var/atlassian/application-data/bamboo
- ./ssl:/opt/atlassian/bamboo/conf/ssl
我不打擾密鑰庫,在 linux 系統上,確保文件歸 2005:2005(docker 中的竹用戶)所有。 證書和密鑰可以用
openssl pkcs12 -in xxxxx.com.pfx -out xxxxx.com.pem -nodes
如果您稍微挖掘一下,您還可以找到如何從 pem 中提取它,祝您好運!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.