簡體   English   中英

openssl 無法在 AWS ECS 容器上創建或寫入 p12 文件

[英]openssl Cannot Create or Write to p12 File on AWS ECS Container

我有兩個 docker 圖像,一個是基礎圖像,另一個使用基礎圖像為 Java 微服務創建更具體的圖像。

基礎映像調用入口點 bash 腳本,該腳本又調用 Python 腳本。 我沒有參與這個的初始設置,所以不能評論為什么這樣做,但它可以很好地啟動微服務,所以它沒有問題。

然而,在 Python 腳本中,我現在嘗試添加一些額外的 Java SSL 參數以支持 HTTPS 流量。 我對此很陌生,但我公司的其他人也做過類似的事情,而且效果很好。

在我的 Python 腳本中,我運行 openssl 來創建證書文件,使用內容的 AWS SSM 參數。 openssl 應該是 output 一個“bundle.p12”文件,證書的集合。

我發現腳本無法創建此 bundle.p12 文件。 從那以后,我嘗試在容器上已有一個空白的 bundle.p12 文件,但是它無法寫入它,即它仍然是空白的。

subprocess.run(['sudo', 'openssl', 'pkcs12', '-export', '-password', 'env:PASSWORD', '-in', './microservice/cloudwild.crt', '-certfile', './microservice/cloudchain.pem', '-inkey' ,'./microservice/cloudwild.key', '-name', 'bundle', '-out', './microservice/bundle.p12'])
subprocess.run(['ls','-la','./microservice'])
subprocess.run(['keytool', '-importkeystore', '-noprompt', '-deststorepass', '$PASSWORD', '-srcstorepass', '$KEYSTORE_PASSWORD', '-destkeystore', './microservice/keystore.p12', '-deststoretype', 'pkcs12', '-srckeystore', './microservice/bundle.p12', '-srcstoretype', 'PKCS12'])

openssl 之后的 ls -la 命令顯示 bundle.p12 仍然是 0 字節。 然后 keytool 拋出一個錯誤,指出 p12 文件存在,但是是空白的。

所以問題似乎是 openssl 和權限。 然而,在基本圖像 dockerfile 中,我將 p12 文件所在的整個文件夾以及 p12 文件本身設置為用戶“bob”,並在調用入口點 bash 腳本(調用 python 腳本)之前切換到該用戶。

我不確定這里可能有什么問題,是否與涉及兩個圖像有關,它在容器上,還是與 p12 文件權限有關。

如果我在本地運行相同的 openssl 和 keytool 命令,它可以正常工作並將證書包放入密鑰庫中。

感謝我遺漏了一些其他代碼細節(例如 dockerfile),因此可以在需要時共享這些代碼,但希望有人對編輯 p12 文件可能出現的問題有更廣泛的看法。

我的問題是證書文件和 p12 文件的路徑。 我不得不使用 os.path.join 以這種方式傳遞路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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