Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

566
Views
¿Cómo agrego un certificado raíz de CA dentro de una imagen acoplable?

Estoy ejecutando una API web ASP.NET Core 1.1 en un contenedor Docker 1.13.1 en Ubuntu 14.04.

Cuando el código intenta recuperar algunos datos de un servidor HTTPS, aparece este error de autenticación de certificado:

 An error occurred while sending the request. ---> System.Net.Http.CurlException: Peer certificate cannot be authenticated with given CA certificates at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error) at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(StrongToWeakReference`1 easyWrapper, CURLcode messageResult)

El servidor HTTPS es interno con un certificado firmado por nuestra CA corporativa, así que sé que es posible que deba registrar la CA interna.

Todo lo que he encontrado hasta ahora sobre este error y Docker habla de hacer que Docker se ejecute, se conecte a repositorios, etc. Mi Docker funciona bien y la API web se ejecuta en el servidor Ubuntu fuera del contenedor sin ningún problema.

1) ¿Necesito agregar un certificado raíz de CA dentro de una imagen acoplable?

2) Si es así, ¿cómo lo hago?

3) Si no, ¿cómo soluciono esto?

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

La tarea en sí no es específica de la ventana acoplable, ya que también necesitaría agregar esa CA en un sistema normal. Hay una respuesta en la comunidad de askubuntu sobre cómo hacer esto.

Entonces, en un Dockerfile , haría lo siguiente (no olvide chmod en caso de que esté ejecutando el contenedor con un usuario que no sea root):

 ADD your_ca_root.crt /usr/local/share/ca-certificates/foo.crt RUN chmod 644 /usr/local/share/ca-certificates/foo.crt && update-ca-certificates
over 4 years ago · Santiago Trujillo Report

0

Para simplificar/estandarizar todas las compilaciones de contenedores, ahora alojamos nuestros certificados en un servidor HTTPS central y los construimos en nuestros contenedores de esta manera:

 # Debian stretch based container RUN curl -ks 'https://cert.host.server/ssl_certs/EnterpriseRootCA.crt' -o '/usr/local/share/ca-certificates/EnterpriseRootCA.crt' RUN /usr/sbin/update-ca-certificates

Los contenedores basados en Alpine no tienen las herramientas disponibles de inmediato, por lo que requieren un poco más de trabajo para lograr lo mismo:

 # Alpine based containers RUN apk update && apk add curl WORKDIR /usr/local/share/ca-certificates RUN curl -ks 'https://cert.host.server/ssl_certs/EnterpriseRootCA.crt' -o '/usr/local/share/ca-certificates/EnterpriseRootCA.crt' RUN /usr/sbin/update-ca-certificates

Si también desea actualizar su almacén de confianza de Java (igual que en cualquier computadora):

 RUN keytool -keystore /usr/lib/jvm/java-8-oracle/jre/lib/security/cacerts -storepass changeit -noprompt -trustcacerts -importcert -alias EnterpriseRootCA -file EnterpriseRootCA.crt
over 4 years ago · Santiago Trujillo Report

0

También vale la pena señalar que esto definitivamente necesita usar la extensión .crt. Inicialmente probé esto con un archivo de certificado .pem (pensé que eran intercambiables, por lo que otros también podrían hacerlo), que no está vinculado por update-ca-certificates .

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!