簡體   English   中英

'npm 錯誤! 作為 docker build 的一部分運行 npm install 時的自簽名證書

[英]'npm ERR! self signed certificate' when running npm install as part of docker build

我有一個 Dockerfile,我在其中運行 npm install

... 運行 npm install ....

出現以下錯誤:

npm ERR! Linux 4.4.0-92-generic
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install"
npm ERR! node v7.10.1
npm ERR! npm  v4.2.0
npm ERR! code DEPTH_ZERO_SELF_SIGNED_CERT
npm ERR! self signed certificate

在同一台機器上直接運行 npm install 時,我沒有遇到這個問題。 (即當我運行它時它不是 docker build 的一部分)。 所以我不相信這個問題與任何 http 代理有關。

@塔倫,

這是 curl -v https://docker.com的輸出

----* SSL 連接使用 TLS1.2 / ECDHE_RSA_AES_128_GCM_SHA256

  • 服務器證書驗證OK

  • 服務器證書狀態驗證已跳過

  • 通用名稱:*.docker.com(匹配)

  • 服務器證書到期日期 OK

  • 服務器證書激活日期 OK

  • 證書公鑰:RSA

  • 證書版本:#3

  • 主題:CN=*.docker.com

  • 開始日期:2017 年 8 月 11 日星期五 00:00:00 GMT

  • 到期日期:2018 年 9 月 11 日,星期二 12:00:00 GMT

  • 發行人:C=US,O=Amazon,OU=Server CA 1B,CN=Amazon

  • 壓縮:NULL

  • ALPN,服務器不同意協議

獲取/HTTP/1.1

主辦方:docker.com

用戶代理:curl/7.47.0


這是來自盒子上的 docker 容器內的 curl 命令。

root@2145cd2e9997:/app/c3po# curl -v https://docker.com

  • 重建 URL 到: https : //docker.com/

  • 在 DNS 緩存中找不到主機名

  • 正在嘗試 52.55.168.191...

  • 連接到 docker.com (52.55.168.191) 端口 443 (#0)

  • 成功設置證書驗證位置:

  • CA文件:無

    CApath:/etc/ssl/certs

  • SSLv3、TLS 握手、客戶端問候 (1):

  • SSLv3、TLS 握手、服務器問候(2):

  • SSLv3、TLS 握手、CERT (11):

  • SSLv3、TLS 警報、服務器問候 (2):

  • SSL證書問題:自簽名證書

  • 關閉連接 0

  • SSLv3、TLS 警報、客戶端問候 (1):

curl: (60) SSL 證書問題:自簽名證書

更多細節在這里: http : //curl.haxx.se/docs/sslcerts.html

curl 默認使用證書頒發機構 (CA) 公鑰 (CA 證書) 的“捆綁”執行 SSL 證書驗證。 如果默認包文件不夠用,您可以使用 --cacert 選項指定備用文件。

如果此 HTTPS 服務器使用由捆綁中表示的 CA 簽名的證書,則證書驗證可能會因證書問題而失敗(它可能已過期,或者名稱可能與 URL 中的域名不匹配)。

如果您想關閉 curl 對證書的驗證,請使用 -k(或 --insecure)選項。

我想通了。 我在 docker 主機上運行 jenkins,我正在使用 iptables 將端口 443 轉發到 8080。這與 docker 自己的 iptable 規則相沖突,這導致了我所有的自簽名證書問題。

這個stackoverflow帖子幫助我確定了問題: SSL證書驗證在特定服務器上的docker容器內失敗

如果你從 Dockerfile 運行一些npm命令,那么你可以在運行 npm 命令之前添加它:

RUN npm config set strict-ssl false
RUN npm install

注意:建議將您公司的根證書(如果您位於公司防火牆后面)復制到容器中,而不是完全禁用 SSL。

暫無
暫無

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

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