Index: trunk/src/org/openstreetmap/josm/io/CertificateAmendment.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/CertificateAmendment.java	(revision 12240)
+++ trunk/src/org/openstreetmap/josm/io/CertificateAmendment.java	(revision 12241)
@@ -49,8 +49,10 @@
     public static class CertAmend {
         private final String id;
+        private final String filename;
         private final String sha256;
 
-        CertAmend(String path, String sha256) {
-            this.id = path;
+        CertAmend(String id, String filename, String sha256) {
+            this.id = id;
+            this.filename = filename;
             this.sha256 = sha256;
         }
@@ -62,4 +64,13 @@
         public final String getId() {
             return id;
+        }
+
+        /**
+         * Returns the certificate filename.
+         * @return filename for both JOSM embedded certificate and platform certificate
+         * @since 12241
+         */
+        public final String getFilename() {
+            return filename;
         }
 
@@ -77,5 +88,5 @@
      */
     private static final CertAmend[] CERT_AMEND = {
-        new CertAmend("resource://data/security/DST_Root_CA_X3.pem",
+        new CertAmend("resource://data/security/DST_Root_CA_X3.pem", "DST_Root_CA_X3.pem",
                 "0687260331a72403d909f105e69bcf0d32e1bd2493ffc6d9206d11bcd6770739")
     };
@@ -86,7 +97,7 @@
      */
     private static final CertAmend[] PLATFORM_CERT_AMEND = {
-        new CertAmend("Staat der Nederlanden Root CA - G2",
+        new CertAmend("Staat der Nederlanden Root CA - G2", "Staat_der_Nederlanden_Root_CA_-_G2.crt",
                 "668c83947da63b724bece1743c31a0e6aed0db8ec5b31be377bb784f91b6716f"),
-        new CertAmend("Government of Netherlands G3",
+        new CertAmend("Government of Netherlands G3", "Staat_der_Nederlanden_Root_CA_-_G3.crt",
                 "3c4fb0b95ab8b30032f432b86f535fe172c185d0fd39865837cf36187fa6f428")
     };
Index: trunk/src/org/openstreetmap/josm/tools/PlatformHookUnixoid.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/PlatformHookUnixoid.java	(revision 12240)
+++ trunk/src/org/openstreetmap/josm/tools/PlatformHookUnixoid.java	(revision 12241)
@@ -8,4 +8,5 @@
 import java.io.BufferedReader;
 import java.io.File;
+import java.io.FileInputStream;
 import java.io.IOException;
 import java.net.URI;
@@ -15,4 +16,9 @@
 import java.nio.file.Path;
 import java.nio.file.Paths;
+import java.security.KeyStoreException;
+import java.security.NoSuchAlgorithmException;
+import java.security.cert.CertificateException;
+import java.security.cert.CertificateFactory;
+import java.security.cert.X509Certificate;
 import java.util.Arrays;
 import java.util.List;
@@ -20,4 +26,5 @@
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.io.CertificateAmendment.CertAmend;
 
 /**
@@ -418,3 +425,16 @@
         return Arrays.asList(new File("/usr/local/share/proj"), new File("/usr/share/proj"));
     }
+
+    @Override
+    public X509Certificate getX509Certificate(CertAmend certAmend)
+            throws KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException {
+        File f = new File("/usr/share/ca-certificates/mozilla", certAmend.getFilename());
+        if (f.exists()) {
+            CertificateFactory fact = CertificateFactory.getInstance("X.509");
+            try (FileInputStream is = new FileInputStream(f)) {
+                return (X509Certificate) fact.generateCertificate(is);
+            }
+        }
+        return null;
+    }
 }
