問題描述
Electron Builder 代碼簽名下載證書錯誤 (Electron Builder Code Signing Download Certificate Error)
我正在構建一個 Electron 應用程序並使用 npm 包 electron‑builder 來構建適用於 Windows 的應用程序和安裝程序。我正在嘗試使用 CSC_LINK
和 CSC_KEY_PASSWORD
環境變量對應用程序進行簽名,如下所述:https://github.com/electron‑userland/electron‑builder#travis‑appveyor‑and‑other‑ci‑servers
首先嘗試錯誤,堆棧跟踪是:
Unhandled rejection Error: unable to verify the first certificate
at Error (native)
at TLSSocket.<anonymous> (_tls_wrap.js:1065:38)
at emitNone (events.js:80:13)
at TLSSocket.emit (events.js:179:7)
at TLSSocket._init.ssl.onclienthello.ssl.oncertcb.TLSSocket._finishInit (_tls_wrap.js:593:8)
at TLSWrap.ssl.onclienthello.ssl.oncertcb.ssl.onnewsession.ssl.onhandshakedone (_tls_wrap.js:425:38)
From previous event:
at Object.downloadCertificate (C:\projects\presentation\Electron\node_modules\electron‑builder\src\codeSign.ts:97:18)
...
然後我嘗試設置環境變量 NODE_TLS_REJECT_UNAUTHORIZED=0
現在得到一個不同的錯誤:
Unhandled rejection Error: Request error, status 400: Bad Request
at ClientRequest.<anonymous> (C:\projects\presentation\Electron\node_modules\electron‑builder\src\httpRequest.ts:36:16)
...
在 electron‑builder 的 httpRequest.ts
中調用的特定行似乎只是在使用 Node 的 https 模塊:https.request(...)
https://github.com/electron‑userland/electron‑builder/ blob/master/src/httpRequest.ts#L28
這讓我相信 Windows 機器或證書有問題。我在 Windows 10 節點 5.9.0 上運行它。
rel="nofollow">https://github.com/electron‑userland/electron‑builder/blob/master/src/httpRequest.ts#L28這讓我相信與 Windows 機器或證書有關。我在 Windows 10 節點 5.9.0 上運行它。
rel="nofollow">https://github.com/electron‑userland/electron‑builder/blob/master/src/httpRequest.ts#L28這讓我相信與 Windows 機器或證書有關。我在 Windows 10 節點 5.9.0 上運行它。
參考解法
方法 1:
It is better to file issue to https://github.com/electron‑userland/electron‑builder/issues directly to get answer from the maintainers. I am active current maintainer and don't check SO, so, unlikely that you get answer quickly ;)
If issue still actual for you, file issue :)
方法 2:
Not certain what the root of the issue was however I was able to get everything to work by moving the file to Dropbox. I still had to set NODE_TLS_REJECT_UNAUTHORIZED=0
and CSC_LINK
needed to be set without quotes:
Success: SET CSC_LINK=https://www.dropbox.com/s/path/to/file.p12?dl=1
Failed: SET CSC_LINK="https://www.dropbox.com/s/path/to/file.p12?dl=1"
A link to the issue discussion on electron‑builder GitHub can be found here: https://github.com/electron‑userland/electron‑builder/issues/291
(by Denny Ferrassoli、develar、Denny Ferrassoli)