When trying to download patches using the VMware vSphere Update Manager Download Service tool (UMDS), the download fails.
# vmware-umds -Dthe following error stack can be seen in the output:
[<timestamp>] verbose vmware-downloadService[09266] [Originator@6876 sub=httpDownload] [httpDownloadPosix 181] * CONNECT tunnel established, response 200
[<timestamp>] verbose vmware-downloadService[09266] [Originator@6876 sub=httpDownload] [httpDownloadPosix 181] * ALPN: curl offers http/1.1
[<timestamp>] verbose vmware-downloadService[09266] [Originator@6876 sub=httpDownload] [httpDownloadPosix 181] * CAfile: /etc/pki/tls/certs/ca-bundle.crt
[<timestamp>] verbose vmware-downloadService[09266] [Originator@6876 sub=httpDownload] [httpDownloadPosix 181] * CApath: /etc/ssl/certs
[<timestamp>] verbose vmware-downloadService[09266] [Originator@6876 sub=httpDownload] [httpDownloadPosix 181] * SSL certificate problem: unable to get local issuer certificate
[<timestamp>] verbose vmware-downloadService[09266] [Originator@6876 sub=httpDownload] [httpDownloadPosix 181] * Closing connection
[<timestamp>] error vmware-downloadService[09266] [Originator@6876 sub=httpDownload] [httpDownloadPosix 685] curl_easy_perform() failed: CURL Error: SSL peer certificate or SSH remote key was not OK, SSL certificate problem: unable to get local issuer certificate
[<timestamp>] error vmware-downloadService[09266] [Originator@6876 sub=httpDownload] [httpDownloadPosix 685] [backtrace begin] product: VMware vSphere Update Manager Download Service, version: 8.0.2, build: build-23319993, tag: vmware-downloadService, cpu: x86_64, os: linux, buildType: release
-- > backtrace[00] libvmacore.so[0x0053D3AB]
-- > backtrace[01] libvmacore.so[0x0043197E]: Vmacore :: System :: Stacktrace :: CaptureFullWork(unsigned int)
-- > backtrace[02] libvmacore.so[0x00444252]: Vmacore :: System :: SystemFactory :: CreateBacktrace(Vmacore :: Ref<Vmacore :: System :: Backtrace>&)
-- > backtrace[03] libvci-vcIntegrity.so[0x00DA8C73]
-- > backtrace[04] libvci-vcIntegrity.so[0x00DA9074]
-- > backtrace[05] libvci-vcIntegrity.so[0x00DA98B0]: Sysimage :: HttpDownloadFile(std ::_ cxx11 :: basic_string<char, std :: char_traits<char>, std :: allocator<char> > const&, std :: cxx11 :: basic_string<char, std :: char_traits<char>, std :: allocator<char> > const&, Integrity :: ProxyServer const&, std ::_ cxx11 :: basic_string<wchar_t, std :: char_traits<wchar_t>, std :: allocator<wchar_t> > const&, int, int, int, std ::_ cxx11 :: basic_string<char, std :: char_traits<char>, std :: allocator<char> > const&, bool const&)
-- > backtrace[06] libvci-vcIntegrity.so[0x00DA4CBA]: Sysimage :: DownloadJobHandler :: Download()
-- > backtrace[07] libvmacore.so[0x0037DBE6]
-- > backtrace[08] libvmacore.so[0x003834F9]
-- > backtrace[09] libvmacore.so[0x0051D093]
-- > backtrace[10] libc.so.6[0x00089C02]
-- > backtrace[11] libc.so.6[0x0010EC40]
-- > backtrace[12] (no module)
-- > [backtrace end]
[<timestamp>] error vmware-downloadService[09266] [Originator@6876 sub=DownloadMgr] [downloadMgr 701] Executing download job {140278933502000} throws error: curl_easy_perform() failed: CURL Error: SSL peer certificate or SSH remote key was not OK, SSL certificate problem: unable to get local issuer certificate
In order to establish a connection with the official download repository, UMDS must be able to authenticate the validity of the certificate the incoming traffic was encrypted with.This is usually done by verifying that the trusted certificate chain for the certificate authority, who signed the certificate is in the trusted root certificate store of the operating system UMDS is installed on.
# curl -kv -x <proxy-URL> https://dl.broadcom.com/<dowload-token>/PROD/COMP/ESX_HOST/main/vmw-depot-index.xml
..
* ALPN: server accepted http/1.1
* Server certificate:
* subject: CN=dl.broadcom.com
* start date: Aug 31 21:47:15 2026 GMT
* expire date: Nov 29 22:47:11 2026 GMT
* issuer: C=US; O=Google Trust Services; CN=WE1
* Certificate level 0: Public key type EC/prime256v1 (256/128 Bits/secBits), signed using ecdsa-with-SHA256
* Certificate level 1: Public key type EC/prime256v1 (256/128 Bits/secBits), signed using ecdsa-with-SHA384
* Certificate level 2: Public key type EC/secp384r1 (384/192 Bits/secBits), signed using sha256WithRSAEncryption
* OpenSSL verify result: 14
* SSL certificate verification failed, continuing anyway!
..
Notes:
- Most SSL inspection applications act as proxies - but curl does not automatically apply the proxy settings configured in the operating system, hence the proxy needs to be manually added in the command using -x the option as seen above.
- The example above is valid at the time this article was written.