2017-06-14 3 views
0

Ich weiß über das Starten einer privaten Container Registry mit TLS aktiviert. Und domain.crt auf andere Docker-Hosts kopieren, um auf die Registrierung zuzugreifen.SSL-Zertifikat für private Docker Repository

Ich habe einen privaten Container-Registry-Server bereits ausgeführt wird (nicht als Container, sondern aus dem Büro) und ich anmelden Benutzernamen verwenden können, Passwort. Wie kann ich es mit SSL-Zertifikat verwenden?

Ich weiß, dass ich ein CA-Zertifikat generieren. Wie wird der private Schlüssel in die Registrierung hochgeladen? Zum Beispiel mit ssh, wo wir den Schlüssel zu Gitlab hochladen, und dem öffentlichen Schlüssel im Host-Rechner.

Oder wie kann ich die domain.crt Datei aus der Registrierung herunterladen Host Andockfenster?

Was fehlt mir?

Danke und Grüße

Antwort

1

ich mit ihm ein paar Jahren spielte vor und bekam es mit nginx arbeiten, mit einer Konfiguration entlang dieser Linien:

{ 
upstream private-docker-registry { 
server docker_registry:5000; 
} 

server { 
listen 443 ssl; 
listen 80; 
server_name mydockerregistry.com; 

ssl_certificate /etc/nginx/certs/mydockerregistry.com.crt; 
ssl_certificate_key /etc/nginx/certs/mydockerregistry.com.key; 

proxy_set_header Host  $http_host; # required for Docker client sake 
proxy_set_header X-Real-IP $remote_addr; # pass on real client IP 

client_max_body_size 0; # disable any limits to avoid HTTP 413 for large image uploads 

# required to avoid HTTP 411: see Issue #1486 (https://github.com/dotcloud/docker/issues/1486) 
chunked_transfer_encoding on; 

location/{ 
    # let Nginx know about our auth file 
    auth_basic    "Restricted"; 
    auth_basic_user_file /etc/nginx/authentication/docker-registry.htpasswd; 

    proxy_pass http://private-docker-registry; 
} 
location /_ping { 
    auth_basic off; 
    proxy_pass http://private-docker-registry; 
} 
location /v1/_ping { 
    auth_basic off; 
    proxy_pass http://private-docker-registry; 
} 

eine htpasswd-Datei für die Authentifizierung erstellen, in dieser Beispiel Ich nannte es docker-registry.htpasswd

Dann führen Sie ein Nginx-Image Verknüpfung zu docker Registry-Container, in diesem Beispiel nennen es docker_registry, in diesem nginx Konfigurationsbeispiel wird es auf Port 5000 zu hören, um die nginx zu laufen Container wird so etwas wie dieses:

sudo docker run -d \ 
    --name="nginx_docker_registry" \ 
    -p 443:443 \ 
    -p 80:80 \ 
    --link my_docker_registry_container_name:docker_registry \ 
    -v "path_to_htpasswd_file_in_host:/etc/nginx/authentication:ro" \ 
    -v "path_to_certificates_in_host:/etc/nginx/certs:ro" \ 
    -v "path_to_nginx_conf_in_host:/etc/nginx/nginx.conf:ro" \ 
    nginx 
Verwandte Themen