6 Replies Latest reply: Dec 4, 2011 4:00 PM by EJP RSS

    Access Https website content without valid certificate

    881813
      I want to access a web application which is using HTTPS protocol. I don't have any control over that application but I can access it using application URL.
      I have a java program which can get the HTML source or any HTTPS website like "https://hostname/index.html" but when i am trying to access the required application URL it throws error because i don't have a valid certificate.

      Is there any way in Java which allows me to access the HTML source code of a website which uses HTTPS protocol by accepting any (valid /invalid ) certificate. Below is the java program,

      public static void main(String[] args) throws Exception
      {     
           try {
                URL url = new URL("https://www.google.com/adsense/");
           System.out.println("url = " + url);
           HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
           System.out.println("connection = "+connection);
           InputStream is = connection.getInputStream();
           InputStreamReader isr = new InputStreamReader(is);
           BufferedReader br = new BufferedReader(isr);
           String inputLine;
           while ((inputLine = br.readLine()) != null)
           {           
                     System.out.println(inputLine);
                     System.out.println("\n");
           }
           br.close();
           } catch (Exception e) {
                e.printStackTrace();
           }
      }
        • 1. Re: Access Https website content without valid certificate
          sabre150
          878810 wrote:
          Is there any way in Java which allows me to access the HTML source code of a website which uses HTTPS protocol by accepting any (valid /invalid ) certificate.
          Assuming the server requires client side authentication then I sincerely hope not.
          • 2. Re: Access Https website content without valid certificate
            881813
            Let me explain it again with a little more detail,

            I want to write an program to access a web application which is using HTTPS protocol. I don't have any control over the webapp but I can access it using application URL.
            I have a java program which can get the HTML source of any HTTPS website like "https://hostname/index.html" but when i am trying to access the required webapp URL, my application throws an error because the webapp has an invalid certificate.

            How do I get Java to accept any certificate? Below is the java program without that

            public static void main(String[] args) throws Exception
            {
            try {
            URL url = new URL("https://www.google.com/adsense/");
            System.out.println("url = " + url);
            HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
            System.out.println("connection = "+connection);
            InputStream is = connection.getInputStream();
            InputStreamReader isr = new InputStreamReader(is);
            BufferedReader br = new BufferedReader(isr);
            String inputLine;
            while ((inputLine = br.readLine()) != null)
            {
            System.out.println(inputLine);
            System.out.println("\n");
            }
            br.close();
            } catch (Exception e) {
            e.printStackTrace();
            }
            }



            This works, but if I replace https://google.com/adsense with https://gives.me.bad.cert then it throws a “XXXXXXX” exception on line the connection.getInputStream

            full stack here:

            connection = sun.net.www.protocol.https.DelegateHttpsURLConnection:https://sbpoact01:4430/jsp/custom/Login.jsp

            javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

            at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)

            at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(Unknown Source)

            at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source)

            at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source)

            at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(Unknown Source)

            at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(Unknown Source)

            at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Unknown Source)

            at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Unknown Source)

            at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)

            at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)

            at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)

            at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)

            at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source)

            at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)

            at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)

            at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)

            at com.vaannila.action.URLConnectionReader.main(URLConnectionReader.java:22)

            Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

            at sun.security.validator.PKIXValidator.doBuild(Unknown Source)

            at sun.security.validator.PKIXValidator.engineValidate(Unknown Source)

            at sun.security.validator.Validator.validate(Unknown Source)

            at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.validate(Unknown Source)

            at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)

            at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)

            ... 13 more

            Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

            at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source)

            at java.security.cert.CertPathBuilder.build(Unknown Source)

            ... 19 more
            • 3. Re: Access Https website content without valid certificate
              836548
              This works, but if I replace https://google.com/adsense with https://gives.me.bad.cert then it throws a “XXXXXXX” exception on line the connection.getInputStream

              full stack here:

              connection = sun.net.www.protocol.https.DelegateHttpsURLConnection:https://sbpoact01:4430/jsp/custom/Login.jsp

              javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

              at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)

              at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(Unknown Source)

              at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source)

              at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source)

              at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(Unknown Source)

              at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(Unknown Source)

              at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Unknown Source)

              at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Unknown Source)

              at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)

              at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)

              at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)

              at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)

              at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source)

              at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)

              at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)

              at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)

              at com.vaannila.action.URLConnectionReader.main(URLConnectionReader.java:22)

              Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

              at sun.security.validator.PKIXValidator.doBuild(Unknown Source)

              at sun.security.validator.PKIXValidator.engineValidate(Unknown Source)

              at sun.security.validator.Validator.validate(Unknown Source)

              at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.validate(Unknown Source)

              at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)

              at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)

              ... 13 more

              Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

              at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source)

              at java.security.cert.CertPathBuilder.build(Unknown Source)

              ... 19 more
              Exception is, because of not valid certificate:

              This simply means that the web server or the URL you are connecting to does not have a valid certificate from an authorized CA.

              Below are some reference urls, check them or you can find many on google.

              http://www.java-samples.com/showtutorial.php?tutorialid=210
              http://www.webapper.com/blog/index.php/2007/02/09/troubleshooting-javaxnetsslsslhandshakeexception/
              • 4. Re: Access Https website content without valid certificate
                EJP
                because the webapp has an invalid certificate
                No. It has a certificate that your truststore doesn't trust. Not at all the same thing.

                This finally gives me an opportunity to post this now that Andreas's blog has bit the dust. Run it and give it the URL in question, then it will import the certificate into your truststore.
                import java.awt.Component;
                import java.io.BufferedOutputStream;
                import java.io.File;
                import java.io.FileInputStream;
                import java.io.FileOutputStream;
                import java.io.InputStream;
                import java.io.OutputStream;
                import java.security.KeyStore;
                import java.security.MessageDigest;
                import java.security.cert.CertificateException;
                import java.security.cert.X509Certificate;
                import java.util.Arrays;
                import java.util.Vector;
                import javax.net.ssl.SSLContext;
                import javax.net.ssl.SSLException;
                import javax.net.ssl.SSLSocket;
                import javax.net.ssl.SSLSocketFactory;
                import javax.net.ssl.TrustManager;
                import javax.net.ssl.TrustManagerFactory;
                import javax.net.ssl.X509TrustManager;
                import javax.swing.JOptionPane;
                import javax.swing.JTable;
                import javax.swing.table.DefaultTableModel;
                import javax.swing.table.TableCellRenderer;
                import javax.swing.table.TableColumn;
                /*
                 * InstallCertJFrame.java
                 *
                 * Created on 22 September 2008, 13:21
                 */
                
                /**
                 *
                 * @author  AndreasSterbenz
                 */
                public class InstallCertJFrame extends javax.swing.JFrame
                {
                     private String     host = "www.verisign.com";
                     private int          port = 443;
                     private String     passphrase = "changeit";
                     private KeyStore     ks;
                     private SavingTrustManager tm;
                     private X509TrustManager      defaultTrustManager;
                     private DefaultTableModel     certModel;
                     
                     /** Creates new form InstallCertJFrame */
                     public InstallCertJFrame()
                     {
                          initComponents();
                          jTextFieldPassphrase.setText(passphrase);
                          jTextFieldHostPort.setText(host+":"+port);
                          super.pack();
                     }
                     
                     /** This method is called from within the constructor to
                      * initialize the form.
                      * WARNING: Do NOT modify this code. The content of this method is
                      * always regenerated by the Form Editor.
                      */
                    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
                    private void initComponents()
                    {
                        jPanel1 = new javax.swing.JPanel();
                        jLabel2 = new javax.swing.JLabel();
                        jTextFieldPassphrase = new javax.swing.JTextField();
                        jLabel1 = new javax.swing.JLabel();
                        jTextFieldHostPort = new javax.swing.JTextField();
                        jButtonConnect = new javax.swing.JButton();
                        jPanel2 = new javax.swing.JPanel();
                        jScrollPane1 = new javax.swing.JScrollPane();
                        jTableCertificates = new javax.swing.JTable();
                        jButtonImport = new javax.swing.JButton();
                        jPanel3 = new javax.swing.JPanel();
                        jScrollPane2 = new javax.swing.JScrollPane();
                        jTextAreaStatus = new javax.swing.JTextArea();
                        jMenuBar1 = new javax.swing.JMenuBar();
                        jMenu1 = new javax.swing.JMenu();
                
                        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
                        jLabel2.setText("Keystore passphrase");
                        jPanel1.add(jLabel2);
                
                        jTextFieldPassphrase.setText("changeit");
                        jPanel1.add(jTextFieldPassphrase);
                
                        jLabel1.setText("HTTPS host:port ");
                        jPanel1.add(jLabel1);
                
                        jTextFieldHostPort.setText("www.verisign.com:443");
                        jPanel1.add(jTextFieldHostPort);
                
                        jButtonConnect.setText("Connect");
                        jButtonConnect.addActionListener(new java.awt.event.ActionListener()
                        {
                            public void actionPerformed(java.awt.event.ActionEvent evt)
                            {
                                jButtonConnectActionPerformed(evt);
                            }
                        });
                
                        jPanel1.add(jButtonConnect);
                
                        getContentPane().add(jPanel1, java.awt.BorderLayout.NORTH);
                
                        jPanel2.setLayout(new java.awt.BorderLayout());
                
                        jTableCertificates.setModel(new javax.swing.table.DefaultTableModel(
                            new Object [][]
                            {
                                {null, null, null, null, null, null, null},
                                {null, null, null, null, null, null, null},
                                {null, null, null, null, null, null, null},
                                {null, null, null, null, null, null, null}
                            },
                            new String []
                            {
                                "No.", "Trust", "Accept", "Subject", "Issuer", "SHA1", "MD5"
                            }
                        )
                        {
                            Class[] types = new Class []
                            {
                                java.lang.Integer.class, java.lang.Boolean.class, java.lang.Boolean.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class
                            };
                            boolean[] canEdit = new boolean []
                            {
                                false, false, true, false, false, false, false
                            };
                
                            public Class getColumnClass(int columnIndex)
                            {
                                return types [columnIndex];
                            }
                
                            public boolean isCellEditable(int rowIndex, int columnIndex)
                            {
                                return canEdit [columnIndex];
                            }
                        });
                        jScrollPane1.setViewportView(jTableCertificates);
                
                        jPanel2.add(jScrollPane1, java.awt.BorderLayout.CENTER);
                
                        jButtonImport.setText("Import");
                        jButtonImport.addActionListener(new java.awt.event.ActionListener()
                        {
                            public void actionPerformed(java.awt.event.ActionEvent evt)
                            {
                                jButtonImportActionPerformed(evt);
                            }
                        });
                
                        jPanel2.add(jButtonImport, java.awt.BorderLayout.SOUTH);
                
                        getContentPane().add(jPanel2, java.awt.BorderLayout.CENTER);
                
                        jScrollPane2.setViewportView(jTextAreaStatus);
                
                        jPanel3.add(jScrollPane2);
                
                        getContentPane().add(jPanel3, java.awt.BorderLayout.SOUTH);
                
                        jMenu1.setText("File");
                        jMenuBar1.add(jMenu1);
                
                        setJMenuBar(jMenuBar1);
                
                        pack();
                    }
                    // </editor-fold>//GEN-END:initComponents
                
                     private void jButtonImportActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_jButtonImportActionPerformed
                     {//GEN-HEADEREND:event_jButtonImportActionPerformed
                // TODO add your handling code here:
                          importCertificates();
                     }//GEN-LAST:event_jButtonImportActionPerformed
                
                     private void jButtonConnectActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_jButtonConnectActionPerformed
                     {//GEN-HEADEREND:event_jButtonConnectActionPerformed
                // TODO add your handling code here:
                          connect();
                     }//GEN-LAST:event_jButtonConnectActionPerformed
                
                     void     connect()
                     {
                          jTextAreaStatus.setText("");
                         String[] c = jTextFieldHostPort.getText().split(":");
                         this.host = c[0];
                         this.port = (c.length == 1) ? 443 : Integer.parseInt(c[1]);
                          this.passphrase = jTextFieldPassphrase.getText();
                          this.certModel = (DefaultTableModel)jTableCertificates.getModel();
                          try
                          {
                               File file = new File("jssecacerts");
                               if (!file.isFile())
                               {
                                    File dir = new File(new File(System.getProperty("java.home"), "lib"), "security");
                                    file = new File(dir, "jssecacerts");
                                    if (!file.isFile())
                                    {
                                         file = new File(dir, "cacerts");
                                    }
                               }
                               jTextAreaStatus.append("Loading KeyStore " + file + "...\n");
                               InputStream in = new FileInputStream(file);
                               this.ks = KeyStore.getInstance(KeyStore.getDefaultType());
                               ks.load(in, passphrase.toCharArray());
                               in.close();
                               
                               SSLContext context = SSLContext.getInstance("TLS");
                               TrustManagerFactory tmf =
                                    TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
                               tmf.init(ks);
                               this.defaultTrustManager = (X509TrustManager)tmf.getTrustManagers()[0];
                               this.tm = new SavingTrustManager(defaultTrustManager);
                               context.init(null, new TrustManager[] {tm}, null);
                               SSLSocketFactory factory = context.getSocketFactory();
                               
                               jTextAreaStatus.append("Opening connection to " + host + ":" + port + "...\n");
                               SSLSocket socket = (SSLSocket)factory.createSocket(host, port);
                               socket.setSoTimeout(10000);
                               try
                               {
                                    jTextAreaStatus.append("Starting SSL handshake ...\n");
                                    socket.startHandshake();
                                    socket.close();
                                    jTextAreaStatus.append("No errors, certificate is already trusted\n");
                               }
                               catch (SSLException exc)
                               {
                                    exc.printStackTrace();
                                    jTextAreaStatus.append(exc.getMessage()+"\n");
                               }
                
                               X509Certificate[] chain = tm.chain;
                               if (chain == null)
                               {
                                    jTextAreaStatus.append("Could not obtain server certificate chain\n");
                                    return;
                               }
                               
                               jTextAreaStatus.append("Server sent " + chain.length + " certificate(s)\n");
                               certModel.setRowCount(0);
                               
                               MessageDigest sha1 = MessageDigest.getInstance("SHA1");
                               MessageDigest md5 = MessageDigest.getInstance("MD5");
                               for (int i = 0; i < chain.length; i++)
                               {
                                    X509Certificate cert = chain;
                                    boolean     trusted = false;
                                    for (int j = i; j >= 0; j--)
                                    {
                                         if (Arrays.asList(defaultTrustManager.getAcceptedIssuers()).contains(chain[j]))
                                         {
                                              trusted = true;
                                              break;
                                         }
                                    }
                                    StringBuilder     sb = new StringBuilder();
                                    sha1.update(cert.getEncoded());
                                    md5.update(cert.getEncoded());
                                    Object[]     rowData =
                                    {
                                         Integer.valueOf(i+1),
                                              trusted,
                                              trusted,
                                              cert.getSubjectDN(),
                                              cert.getIssuerDN(),
                                              toHexString(sha1.digest()),
                                              toHexString(md5.digest()),
                                    };
                //                    System.out.println(Arrays.toString(rowData));
                                    certModel.addRow(rowData);
                               }
                               initColumnSizes(jTableCertificates);
                          }
                          catch (Exception exc)
                          {
                               JOptionPane.showMessageDialog(this, exc, "exception", JOptionPane.ERROR_MESSAGE);
                          }
                     }
                     
                     void     importCertificates()
                     {
                          int     k = -1;
                          for (int i = 0; i < certModel.getRowCount(); i++)
                          {
                               // !trusted && accept?
                               if (certModel.getValueAt(i, 1).equals(Boolean.FALSE) && certModel.getValueAt(i, 2).equals(Boolean.TRUE))
                               {
                                    k = i;
                                    break;
                               }
                          }
                          if (k < 0)
                               return;
                          X509Certificate cert = tm.chain[k];
                          String alias = host + "-" + (k + 1);
                          try
                          {
                               ks.setCertificateEntry(alias, cert);
                               OutputStream out = new BufferedOutputStream(new FileOutputStream("jssecacerts"));
                               ks.store(out, passphrase.toCharArray());
                               out.close();
                          }
                          catch (Exception exc)
                          {
                               JOptionPane.showMessageDialog(this, exc, "exception", JOptionPane.ERROR_MESSAGE);
                          }
                          jTextAreaStatus.append("Added certificate to keystore './jssecacerts' using alias '"+alias+"'");
                          
                     }
                     
                     /*
                * This method picks good column sizes.
                * If all column heads are wider than the column's cells'
                * contents, then you can just use column.sizeWidthToFit().
                */
                private void initColumnSizes(JTable table) {
                DefaultTableModel model = (DefaultTableModel)table.getModel();
                          // Size to the cells in the first row
                Object[] rowData = ((Vector)model.getDataVector().get(0)).toArray();
                TableCellRenderer headerRenderer =
                table.getTableHeader().getDefaultRenderer();

                for (int i = 0; i < model.getColumnCount(); i++)
                          {
                TableColumn column = table.getColumnModel().getColumn(i);

                Component comp = headerRenderer.getTableCellRendererComponent(
                null, column.getHeaderValue(),
                false, false, 0, 0);
                int headerWidth = comp.getPreferredSize().width;

                comp = table.getDefaultRenderer(model.getColumnClass(i)).
                getTableCellRendererComponent(
                table, rowData[i],
                false, false, 0, i);
                int cellWidth = comp.getPreferredSize().width;

                if (false) {
                System.out.println("Initializing width of column "
                + i + ". "
                + "headerWidth=" + headerWidth
                + "; cellWidth=" + cellWidth);
                }
                column.setPreferredWidth(Math.max(headerWidth, cellWidth));
                }
                }
                     
                     private static final char[] HEXDIGITS = "0123456789abcdef".toCharArray();
                     
                     private static String toHexString(byte[] bytes)
                     {
                          StringBuilder sb = new StringBuilder(bytes.length * 3);
                          for (int b : bytes)
                          {
                               b &= 0xff;
                               sb.append(HEXDIGITS[b >> 4]);
                               sb.append(HEXDIGITS[b & 15]);
                               sb.append(' ');
                          }
                          return sb.toString();
                     }
                     
                     private static class SavingTrustManager implements X509TrustManager
                     {
                          private final X509TrustManager tm;
                          private X509Certificate[] chain;
                          
                          SavingTrustManager(X509TrustManager tm)
                          {
                               this.tm = tm;
                          }
                          
                          public X509Certificate[] getAcceptedIssuers()
                          {
                               throw new UnsupportedOperationException();
                          }
                          
                          public void checkClientTrusted(X509Certificate[] chain, String authType)
                          throws CertificateException
                          {
                               throw new UnsupportedOperationException();
                          }
                          
                          public void checkServerTrusted(X509Certificate[] chain, String authType)
                          throws CertificateException
                          {
                               this.chain = chain;
                               tm.checkServerTrusted(chain, authType);
                          }
                     }
                     
                     
                     /**
                     * @param args the command line arguments
                     */
                     public static void main(String args[])
                     {
                          java.awt.EventQueue.invokeLater(new Runnable()
                          {
                               public void run()
                               {
                                    new InstallCertJFrame().setVisible(true);
                               }
                          });
                     }
                     
                // Variables declaration - do not modify//GEN-BEGIN:variables
                private javax.swing.JButton jButtonConnect;
                private javax.swing.JButton jButtonImport;
                private javax.swing.JLabel jLabel1;
                private javax.swing.JLabel jLabel2;
                private javax.swing.JMenu jMenu1;
                private javax.swing.JMenuBar jMenuBar1;
                private javax.swing.JPanel jPanel1;
                private javax.swing.JPanel jPanel2;
                private javax.swing.JPanel jPanel3;
                private javax.swing.JScrollPane jScrollPane1;
                private javax.swing.JScrollPane jScrollPane2;
                private javax.swing.JTable jTableCertificates;
                private javax.swing.JTextArea jTextAreaStatus;
                private javax.swing.JTextField jTextFieldHostPort;
                private javax.swing.JTextField jTextFieldPassphrase;
                // End of variables declaration//GEN-END:variables
                     
                }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
                • 5. Re: Access Https website content without valid certificate
                  903477
                  Two last posts (including mine yesterday) have disappeared from this thread. If they were removed by a moderator I'd like to see an explanation. Thanks.
                  • 6. Re: Access Https website content without valid certificate
                    EJP
                    Because you revived an old thread without apparently reading it first?

                    If your question related directly to this thread it has already been answered above. If it is a new question it should be in a new thread.