簡體   English   中英

將Docker注冊表與不帶IP SAN的SSL證書一起使用

[英]Use Docker registry with SSL certifictae without IP SANs

我有一個在雲服務器上運行的私有Docker注冊表(使用圖像)。 我想通過nginx使用基本身份驗證和SSL來保護此注冊表。 但我是SSL新手,遇到了一些問題:

我用OpenSSL創建了SSL證書,如下所示:

openssl req -x509 -batch -nodes -newkey rsa:2048 -keyout private.key -out certificate.crt

然后我將這兩個文件復制到我的雲服務器並在nginx中使用它,如下所示:

upstream docker-registry {
    server localhost:5000;
}

server {

    listen 443;
    proxy_set_header Host       $http_host;   
    proxy_set_header X-Real-IP  $remote_addr;

    ssl on;
    ssl_certificate /var/certs/certificate.crt;
    ssl_certificate_key /var/certs/private.key;

    client_max_body_size 0;
    chunked_transfer_encoding on;

    location / {
        auth_basic "Restricted";
        auth_basic_user_file /etc/nginx/sites-enabled/.htpasswd;
        proxy_pass http://XX.XX.XX.XX;
    }
}

Nginx和注冊表都在啟動和運行。 我可以在我的瀏覽器中訪問我的服務器,它向我發出關於我的SSL證書的警告(因此nginx運行並找到SSL證書),當我輸入我的憑據時,我可以看到來自Docker注冊表的ping消息(因此注冊表也是運行)。

但是當我嘗試通過Docker登錄時,我收到以下錯誤:

vagrant@ubuntu-13:~$ docker login https://XX.XX.XX.XX
Username: XXX
Password:
Email:
2014/05/05 08:30:59 Error: Invalid Registry endpoint: Get https://XX.XX.XX.XX/v1/_ping: x509: cannot validate certificate for XX.XX.XX.XX because it doesn't contain any IP SANs

我知道這個異常意味着我的證書中沒有服務器的IP地址, 但是可以使用Docker客戶端並忽略丟失的IP嗎?

編輯:

如果我使用證書與服務器的IP工作。 但有沒有機會在沒有IP的情況下使用SSL證書?

這是圍棋問題。 實際上這是一個技術問題,並拒絕遵循行業黑客,因此這就是為什么它不起作用。 請參閱此https://groups.google.com/forum/#!topic/golang-nuts/LjhVww0TQi4

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM