Index: trunk/src/org/openstreetmap/josm/io/CertificateAmendment.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/CertificateAmendment.java	(revision 14995)
+++ trunk/src/org/openstreetmap/josm/io/CertificateAmendment.java	(revision 14999)
@@ -189,5 +189,5 @@
                 "https://eidas.disig.sk"),
         // Government of Taiwan - https://grca.nat.gov.tw/GRCAeng/index.html
-        new NativeCertAmend("Government Root Certification Authority", "Government Root Certification Authority", "Taiwan_GRCA.pem",
+        new NativeCertAmend("TW Government Root Certification Authority", "Government Root Certification Authority", "Taiwan_GRCA.pem",
                 "7600295eefe85b9e1fd624db76062aaaae59818a54d2774cd4c0b2c01131e1b3",
                 "https://grca.nat.gov.tw")
Index: trunk/src/org/openstreetmap/josm/io/OnlineResource.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/OnlineResource.java	(revision 14995)
+++ trunk/src/org/openstreetmap/josm/io/OnlineResource.java	(revision 14999)
@@ -17,4 +17,6 @@
     /** The JOSM website, used for startup page, imagery/presets/styles/rules entries, help, etc. */
     JOSM_WEBSITE(tr("JOSM website")),
+    /** Various government certificates downloaded on Windows to make https imagery work in some countries */
+    CERTIFICATES(tr("Certificates")),
     /** Value used to represent all online resources */
     ALL(tr("All"));
Index: trunk/src/org/openstreetmap/josm/tools/PlatformHookWindows.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/PlatformHookWindows.java	(revision 14995)
+++ trunk/src/org/openstreetmap/josm/tools/PlatformHookWindows.java	(revision 14999)
@@ -87,4 +87,6 @@
 import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.io.CertificateAmendment.NativeCertAmend;
+import org.openstreetmap.josm.io.NetworkManager;
+import org.openstreetmap.josm.io.OnlineResource;
 import org.openstreetmap.josm.spi.preferences.Config;
 
@@ -479,5 +481,5 @@
         // Search by alias (fast)
         Certificate result = ks.getCertificate(certAmend.getWinAlias());
-        if (result == null) {
+        if (result == null && !NetworkManager.isOffline(OnlineResource.CERTIFICATES)) {
             // Make a web request to target site to force Windows to update if needed its trust root store from its certificate trust list
             // A better, but a lot more complex method might be to get certificate list from Windows Registry with PowerShell
@@ -495,7 +497,9 @@
         MessageDigest md = MessageDigest.getInstance("SHA-256");
         for (Enumeration<String> aliases = ks.aliases(); aliases.hasMoreElements();) {
-            result = ks.getCertificate(aliases.nextElement());
+            String alias = aliases.nextElement();
+            result = ks.getCertificate(alias);
             if (result instanceof X509Certificate
                     && certAmend.getSha256().equalsIgnoreCase(Utils.toHexString(md.digest(result.getEncoded())))) {
+                Logging.warn("Certificate not found for alias ''{0}'' but found for alias ''{1}''", certAmend.getWinAlias(), alias);
                 return (X509Certificate) result;
             }
