簡體   English   中英

使用自簽名證書在 HTTPS 上運行 Bamboo 服務器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM