我一直在寻找任何证书管理员的图片,但我找不到任何可以帮助我安装.cer证书的内容。 1709纳米服务器的图像并没有配备PowerShell,所以为了使用它,我必须使用microsoft / windowsservercore映像进行多阶段构建,但我不太确定我是怎么去的关于这样做,我似乎无法通过谷歌找到任何有用的东西。
如果有人知道如何安装证书或使用多阶段构建,非常感谢。
对于那些感兴趣的人,这里是我的docker-compose.yml和Dockerfile
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="xmldsig-f62dafae-6983-4b97-9b52-3f24c6960c43">
....
<ds:SignatureValue Id="xmldsig-f62dafae-6983-4b97-9b52-3f24c6960c43-sigvalue">
VpJzFiW62NK2ytlUkAYF....
</ds:SignatureValue>
....
</ds:Signature>
version: '3'
services:
myapp:
image: myapp
ports:
- "5000:80"
build:
context: .
dockerfile: MyApp\Dockerfile
container_name: "myapp"
hostname: "myapp"
depends_on:
- db
db:
image: "microsoft/mssql-server-windows-express"
environment:
SA_PASSWORD: ""
ACCEPT_EULA: "Y"
container_name: "myapp"
hostname: "myapp"
谢谢!
答案 0 :(得分:1)
在某些图像上,有一个名为certoc.exe
的工具,可用于导入证书(用法:certoc.exe -addstore root my_root_certificate.cer
)。
1709图像上没有此工具,但microsoft/nanoserver:sac2016
等图像上却有此工具。
总结起来,我发现最好的解决方法是将Dockerfile
更改为包含以下内容:
FROM microsoft/nanoserver:sac2016 as tool
COPY --from=tool /Windows/System32/certoc.exe .
USER ContainerAdministrator
RUN certoc.exe -addstore root my_root_certificate.cer
在这里非常感谢Joshua Chini:https://joshuachini.com/2018/02/08/how-to-import-an-enterprise-certificate-into-a-windows-container/