Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

388
Visualizações
Habilitar HTTPS para el contenedor docker de Nginx

Para el entorno de desarrollo, necesito habilitar la conexión SSL con un contenedor Nginx.

Obtengo un certificado generado desde Azure Key Vault y está en formato PFX.

He estado tratando de instalar opensll dentro de mi contenedor nginx y generar un crt y un archivo clave desde el PFX sin suerte.

¿Cuál sería la forma más fácil de habilitar la conexión HTTPS a mi contenedor NGINX?

Este es mi dockerfile que no funciona a partir de ahora.

 FROM nginx:1.17.1-alpine ARG CERT RUN apk upgrade --update-cache --available && \ apk add openssl && \ rm -rf /var/cache/apk/* RUN echo "$CERT" RUN test -z "$CERT" || echo "$CERT" && echo "no certificates setup" COPY cert.pfx /opt/certificate.pfx RUN mkdir /etc/nginx/certs RUN test -z "$CERT" || openssl pkcs12 -in /certificate.pfx -nocerts -out /etc/nginx/certs/cert.key -password pass:FakePassword && : RUN test -z "$CERT" || openssl pkcs12 -in /certificate.pfx -clcerts -nokeys -out /etc/nginx/certs/cert.crt -password pass:FakePassword && : RUN test -z "$CERT" || echo $'server { \n\ \tlisten 443 ssl; \n\ \tserver_name www.yoursite.com; \n\ \tssl_certificate /etc/nginx/certs/cert.crt; \n\ \tssl_certificate_key /etc/nginx/certs/cert.key; \n\ \tlocation / { \n\ \t\tproxy_pass http://frontend:5000/; \n\ \t\terror_log /var/log/front_end_errors.log; \n\ \t} \n\ }' >> /etc/nginx/conf.d/nginx.conf EXPOSE 80 443 COPY --from=build /app/dist /usr/share/nginx/html/

mi error es:

 Step 18/25 : RUN if [ "x$CERT" = "x" ] ; then : ; else openssl pkcs12 -in /opt/certificate.pfx -nocerts -out /etc/nginx/certs/cert.key ; fi ---> Running in f5d8b255e51c Enter Import Password: Can't read Password The command '/bin/sh -c if [ "x$CERT" = "x" ] ; then : ; else openssl pkcs12 -in /opt/certificate.pfx -nocerts -out /etc/nginx/certs/cert.key ; fi' returned a non-zero code: 1
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Probablemente no sea lo que quiere escuchar, pero la solución que propone es peligrosa o muy peligrosa según el caso de uso. Lo que está haciendo es hornear el certificado en la imagen misma. Los certificados y otros secretos deben montarse como volúmenes de Docker, por lo que en su caso, hacer /etc/nginx/certs un volumen resolvería mejor su problema

Hay varias formas de obtener el certificado SSL en el contenedor, según cómo orqueste el contenedor. Dado que etiqueta con "Azure", asumo que usa Azure Kubernetes Service o Azure Container Instances. En AKS hay muchas formas de hacer esto, pero una forma común es crear un contenedor de inicio, darle acceso al almacén de claves y cargar el secreto directamente desde el almacén de claves en un volumen compartido (tmpfs).

En Container Instances, puede leer el secreto directamente desde el almacén de claves en tiempo de ejecución asignando los derechos del contenedor al almacén de claves (similar a como lo haría en AKS), luego cree un script de punto de entrada en su imagen de Docker que descargue el certificado a un volumen temporal y luego inicia nginx.

Cualquiera que sea la forma que elija: nunca, jamás, conserve los secretos de un almacén de claves en ningún tipo de almacenamiento.

Consulte esta página para ver un ejemplo sobre cómo usar curl para descargar secretos de un almacén de claves de Azure dentro de un contenedor en tiempo de ejecución.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda