1

イメージをプッシュできるローカル docker リポジトリを作成しようとしています。このために、次の手順を実行しました。

SSLで構成されたnginx Dockerローカルリポジトリをサーバー名にバインドするように構成されたnginx 以下は私のnginx構成です

upstream artifactory_lb {
        server myLb.company.com:8081;
        server myLb.company.com:8081 backup;
}

log_format upstreamlog '[$time_local] $remote_addr - $remote_user - $server_name  to: $upstream_addr: $request upstream_response_time $upstream_response_time msec $msec request_time $request_time';

server {
        listen 80;
        listen 443 ssl;

        ssl_certificate  /etc/nginx/ssl/my-certs/myCert.pem;
        ssl_certificate_key /etc/nginx/ssl/my-certs/myserver.key;
        client_max_body_size 2048M;
        location / {
                proxy_set_header Host $host:$server_port;
                proxy_pass http://artifactory_lb;
                proxy_read_timeout 90;
        }
        access_log /var/log/nginx/access.log upstreamlog;
        location /basic_status {
                stub_status on;
                allow all;
                }
}

# Server configuration

server {
    listen 2222 ssl;

    server_name myLb.company.com;
    if ($http_x_forwarded_proto = '') {
        set $http_x_forwarded_proto  $scheme;
    }

    rewrite ^/(v1|v2)/(.*) /api/docker/my_local_repo_key/$1/$2;
    client_max_body_size 0;
    chunked_transfer_encoding on;
    location / {
    proxy_read_timeout  900;
    proxy_pass_header   Server;
    proxy_cookie_path ~*^/.* /;
    proxy_pass         http://artifactory_lb;
    proxy_set_header   X-Artifactory-Override-Base-Url $http_x_forwarded_proto://$host;
    proxy_set_header    X-Forwarded-Port  $server_port;
    proxy_set_header    X-Forwarded-Proto $http_x_forwarded_proto;
    proxy_set_header    Host              $http_host;
    proxy_set_header    X-Forwarded-For   $proxy_add_x_forwarded_for;
    }
}

Docker イメージをプッシュしようとするとdocker push https://myLb.comapny.com/docker/api/image_name、次のエラーが表示されます

v2 ping attempt failed with error: Get https://myLb.company.com/v2/: x509: certificate signed by unknown authority

注:証明書の機関とアーティファクトの他のリポジトリは問題なく動作することを確認しました

また、証明書を /etc/docker/certs.d および etc/ssl/ca-certificates および usr/local/share/ca-certificates の下にインストールしました

私は何が欠けていますか?

4

1 に答える 1

0

Nginx 構成からの証明書チェーンが欠落している可能性があります。

参照: http://nginx.org/en/docs/http/configuring_https_servers.html#chains

このチェーン証明書 (中間証明書) を取得する方法は、認証局によって異なります。CA の指示に従ってそれを見つけることができるはずです。たとえば、GoDaddy の場合、手順は、中間証明書チェーンを見つけることができるこのリポジトリを示しています: https://certs.godaddy.com/repository

于 2016-04-25T18:38:50.383 に答える