讓我們在 Amazon Linux(不是 2)實例上加密 Bitnami 堆棧和樂高的問題
我們有一個 Amazon Linux(不是 Amazon Linux 2)實例,執行一個相當舊的 Bitnami Trac/SVN 堆棧,還執行一個 Tomcat 伺服器。它有兩個 httpd 實例:一個是 Bitnami 堆棧的一部分,另一個是作業系統附帶的。Tomcat 獨立執行。Lego 已經存在,bncert-tool 也是如此,但 Bitnami 目錄不是“/opt/bitnami”,而是“/opt/trac-1.2.3-11”。
作業系統 httpd 在啟動時會監聽 80,不安全。Bitnami httpd 偵聽 8000,安全,也可以偵聽 81。Tomcat 伺服器獨立於 httpd 執行,並偵聽 8443,安全(使用來自 443 的 iptables 重定向)和 7443(也安全)。
在現場實例上工作,從實時伺服器的最新備份複製,在 Route 53 中映射到它的域,以及在分配的安全組之一中向世界開放的埠 80 和 443,我一直在嘗試按照https://docs.bitnami.com/aws/how-to/generate-install-lets-encrypt-ssl/#alternative-approach頁面上“替代方法”下的說明進行操作,但未成功。
跳過過程中的第 1 步,因為樂高已經存在,直接進入第 2 步,我用“ctlscript.sh stop”停止了 Bitnami。然後,我(在 root 權限下執行)嘗試使用程序中給出的命令獲取證書,並根據情況進行調整。(注意域名已更改,“保護無辜”。)
sudo /opt/trac-1.2.3-11/letsencrypt/lego --tls --email="foo@bar.com" --domains="test.bar.net" --path="/opt/trac-1.2.3-11/letsencrypt" run
我懂了:
2020/08/04 18:01:29 No key found for account foo@bar.com. Generating a P384 key. 2020/08/04 18:01:29 Saved key to /opt/trac-1.2.3-11/letsencrypt/accounts/acme-v02.api.letsencrypt.org/foo@bar.com/keys/foo@bar.com.key 2020/08/04 18:01:30 Please review the TOS at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf Do you accept the TOS? Y/n Y 2020/08/04 18:01:43 [INFO] acme: Registering account for foo@bar.com !!!! HEADS UP !!!! Your account credentials have been saved in your Let's Encrypt configuration directory at "/opt/trac-1.2.3-11/letsencrypt/accounts". You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained from Let's Encrypt so making regular backups of this folder is ideal. 2020/08/04 18:01:43 [INFO] [test.bar.net] acme: Obtaining bundled SAN certificate 2020/08/04 18:01:43 [INFO] [test.bar.net] AuthURL: https://acme-v02.api.letsencrypt.org/acme/authz-v3/6317334421 2020/08/04 18:01:43 [INFO] [test.bar.net] acme: use tls-alpn-01 solver 2020/08/04 18:01:43 [INFO] [test.bar.net] acme: Trying to solve TLS-ALPN-01 2020/08/04 18:01:50 [INFO] Unable to deactivated authorizations: https://acme-v02.api.letsencrypt.org/acme/authz-v3/6317334421 2020/08/04 18:01:50 Could not obtain certificates: acme: Error -> One or more domains had a problem: [test.bar.net] acme: error: 403 :: urn:ietf:params:acme:error:unauthorized :: Cannot negotiate ALPN protocol "acme-tls/1" for tls-alpn-01 challenge, url:
然後我嘗試關閉作業系統 httpd 實例,並重複該命令。從“獲取捆綁的 SAN 證書”消息開始,我得到了相同的結果。
然後,我嘗試關閉 Tomcat。這一次,我在最後一行收到了不同的資訊:
[test.bar.net] acme: error: 400 :: urn:ietf:params:acme:error:connection :: Connection refused, url:
顯然這裡出了點問題,但我的下一步是什麼?
如果涉及埠映射(例如,8443 通過 iptables 從外部顯示為 443),則嘗試將參數“–http.port :80 –tls.port :8443”添加到樂高呼叫。
此外,如果您需要將證書提供給 Tomcat 伺服器,而 Tomcat 拒絕它們,您可以使用 openssl 將它們轉換為 PKCS12 密鑰庫,這對 Tomcat 來說更容易處理。