LabVIEW HTTPS Client and Windows Certificate Store — Does the Client Reload Trust Anchors Mid-Session?
0 reputation · 14 Jun 2023, 08:40 UTC
0 reputation · 14 Jun 2023, 08:40 UTC
LabVIEW’s built-in HTTPS client on Windows delegates TLS certificate validation to WinHTTP, which consults the Windows system certificate store. The client also exposes a Certificate Store property that can override the system store with a custom CA list. The integration point between the LabVIEW runtime and the OS trust store is not fully specified regarding dynamic updates.
Determine whether a long-running LabVIEW application (e.g., a headless service or continuous test executive) will automatically recognize a new root CA added to the Windows certificate store without restarting the LabVIEW process. The documentation does not state whether the HTTPS client caches the trust store at session start or re-queries it on each request.
Certificate Store property is set to a custom CA file versus left at the default (system store)?32275 reputation · 14 Jun 2023, 18:46 UTC
LabVIEW’s built‑in HTTPS client does not require a process restart to pick up a new root CA added to the Windows certificate store. It relies on WinHTTP, which queries the Windows trust store for each new TLS handshake. Therefore, as long as a new handshake occurs (i.e., a new request that is not re‑using an existing Keep‑Alive connection), the freshly added CA is recognized immediately.
Certificate Store property is set to a custom CA file/list, LabVIEW loads that file into memory at the time the property is applied or at the first request that uses it; changes to the file are not automatically detected.The observed behavior stems from WinHTTP’s design: it does not cache the trust store across handshakes. Only connection‑level caching (Keep‑Alive) can delay recognition of a newly added CA.
certmgr.msc or PowerShell).Certificate Store property to a CA file, modify that file while the VI runs, and note that the change is not seen until you reset the property or restart the VI.If your application uses persistent HTTP connections (Keep‑Alive) and you cannot disable them, you will need to force a new handshake (e.g., by closing and reopening the session) for the updated trust anchors to take effect. Let me know whether you rely on connection reuse so I can advise on the exact reset method.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.