Vid*_*dya 10 docker dockerfile
我需要在docker启动时生成自签名证书.基本上我们的码头工人开始使用大厅ci.所以它必须在dockerfile中,并且不能使用docker run使用任何选项.
让我知道对此的任何意见
Ale*_*hin 16
简单RUN命令有什么问题?它适用于我,并且已成功创建自签名证书.
FROM debian:wheezy
RUN apt-get update && \
apt-get install -y openssl && \
openssl genrsa -des3 -passout pass:x -out server.pass.key 2048 && \
openssl rsa -passin pass:x -in server.pass.key -out server.key && \
rm server.pass.key && \
openssl req -new -key server.key -out server.csr \
-subj "/C=UK/ST=Warwickshire/L=Leamington/O=OrgName/OU=IT Department/CN=example.com" && \
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Run Code Online (Sandbox Code Playgroud)
进入后Dockerfile,证书仅在映像构建期间创建一次; 然后你有图像中的证书.
如果每次容器启动时都需要新的自签名证书,则可以使用外部shell脚本.像这样:
#!/bin/bash
openssl genrsa -des3 -passout pass:x -out server.pass.key 2048
openssl rsa -passin pass:x -in server.pass.key -out server.key
rm server.pass.key
openssl req -new -key server.key -out server.csr \
-subj "/C=UK/ST=Warwickshire/L=Leamington/O=OrgName/OU=IT Department/CN=example.com"
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Run Code Online (Sandbox Code Playgroud)
然后将该shell脚本放入您的Dockerfile设置并设置默认执行:
FROM debian:wheezy
RUN apt-get update && \
apt-get install -y openssl
COPY generate-certificate.sh /tmp/generate-certificate.sh
CMD [ "/tmp/generate-certificate.sh" ]
Run Code Online (Sandbox Code Playgroud)
在这种情况下,每次启动容器时docker run ....,都会生成一个新的唯一证书.
Mat*_*rty 15
我在 nginx:alpine 中使用了类似的:
FROM nginx:1.19.1-alpine
RUN apk update && \
apk add --no-cache openssl && \
openssl req -x509 -nodes -days 365 \
-subj "/C=CA/ST=QC/O=Company Inc/CN=example.com" \
-newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key \
-out /etc/ssl/certs/nginx-selfsigned.crt;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9813 次 |
| 最近记录: |