diff --git a/src/Shared/CertificateGeneration/UnixCertificateManager.cs b/src/Shared/CertificateGeneration/UnixCertificateManager.cs index 209da55e80c4..1febba391529 100644 --- a/src/Shared/CertificateGeneration/UnixCertificateManager.cs +++ b/src/Shared/CertificateGeneration/UnixCertificateManager.cs @@ -476,6 +476,11 @@ private static string GetChromiumNssDb(string homeDirectory) return Path.Combine(homeDirectory, ".pki", "nssdb"); } + private static string GetChromiumSnapNssDb(string homeDirectory) + { + return Path.Combine(homeDirectory, "snap", "chromium", "current", ".pki", "nssdb"); + } + private static string GetFirefoxDirectory(string homeDirectory) { return Path.Combine(homeDirectory, ".mozilla", "firefox"); @@ -732,13 +737,21 @@ private static List GetNssDbs(string homeDirectory) return nssDbs; } - // Chrome, Chromium, Edge, and their respective snaps all use this directory + // Chrome, Chromium, and Edge all use this directory var chromiumNssDb = GetChromiumNssDb(homeDirectory); if (Directory.Exists(chromiumNssDb)) { nssDbs.Add(new NssDb(chromiumNssDb, isFirefox: false)); } + // Chromium Snap, when launched under snap confinement, uses this directory + // (On Ubuntu, the GUI launcher uses confinement, but the terminal does not) + var chromiumSnapNssDb = GetChromiumSnapNssDb(homeDirectory); + if (Directory.Exists(chromiumSnapNssDb)) + { + nssDbs.Add(new NssDb(chromiumSnapNssDb, isFirefox: false)); + } + var firefoxDir = GetFirefoxDirectory(homeDirectory); if (Directory.Exists(firefoxDir)) {