[英]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.