做鱫视频网站,单职业传奇网站,网站宣传的作用,wordpress标题间隔符修改网上流行的 InstallCert.java#xff0c;应该出自于官网。但现在也找不到了#xff0c;只能找到2011年的一篇文章#xff08;在文章底下的参考链接#xff09;。
以下是生成证书的代码#xff1a;
import java.io.BufferedReader;
import java.io.File;
import java.io.…网上流行的 InstallCert.java应该出自于官网。但现在也找不到了只能找到2011年的一篇文章在文章底下的参考链接。
以下是生成证书的代码
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.security.KeyStore;
import java.security.MessageDigest;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;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;/**** 编译InstallCert.java然后执行java InstallCert hostname比如 java InstallCert* www.twitter.com 会看到如下信息*/
public class InstallCert {public static void main(String[] args) throws Exception {String host;int port;char[] passphrase;host api.mch.weixin.qq.com;port 443;String p changeit;passphrase p.toCharArray();File file new File(jssecacerts);if (file.isFile() false) {char SEP File.separatorChar;File dir new File(System.getProperty(java.home) SEP lib SEP security);file new File(dir, jssecacerts);if (file.isFile() false) {file new File(dir, cacerts);}}System.out.println(Loading KeyStore file ...);InputStream in new FileInputStream(file);KeyStore ks KeyStore.getInstance(KeyStore.getDefaultType());ks.load(in, passphrase);in.close();SSLContext context SSLContext.getInstance(TLS);TrustManagerFactory tmf TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());tmf.init(ks);X509TrustManager defaultTrustManager (X509TrustManager) tmf.getTrustManagers()[0];SavingTrustManager tm new SavingTrustManager(defaultTrustManager);context.init(null, new TrustManager[]{tm}, null);SSLSocketFactory factory context.getSocketFactory();System.out.println(Opening connection to host : port ...);SSLSocket socket (SSLSocket) factory.createSocket(host, port);socket.setSoTimeout(10000);try {System.out.println(Starting SSL handshake...);socket.startHandshake();socket.close();System.out.println();System.out.println(No errors, certificate is already trusted);} catch (SSLException e) {System.out.println();e.printStackTrace(System.out);}X509Certificate[] chain tm.chain;if (chain null) {System.out.println(Could not obtain server certificate chain);return;}BufferedReader reader new BufferedReader(new InputStreamReader(System.in));System.out.println();System.out.println(Server sent chain.length certificate(s):);System.out.println();MessageDigest sha1 MessageDigest.getInstance(SHA1);MessageDigest md5 MessageDigest.getInstance(MD5);for (int i 0; i chain.length; i) {X509Certificate cert chain[i];System.out.println( (i 1) Subject cert.getSubjectDN());System.out.println( Issuer cert.getIssuerDN());sha1.update(cert.getEncoded());System.out.println( sha1 toHexString(sha1.digest()));md5.update(cert.getEncoded());System.out.println( md5 toHexString(md5.digest()));System.out.println();}System.out.println(Enter certificate to add to trusted keystore or q to quit: [1]);String line reader.readLine().trim();int k;try {k (line.length() 0) ? 0 : Integer.parseInt(line) - 1;} catch (NumberFormatException e) {System.out.println(KeyStore not changed);return;}X509Certificate cert chain[k];String alias host - (k 1);ks.setCertificateEntry(alias, cert);File outFile new File(jssecacerts);OutputStream out new FileOutputStream(outFile);System.out.println(out);ks.store(out, passphrase);out.close();System.out.println();System.out.println(cert);System.out.println();System.out.println(Added certificate to keystore jssecacerts using alias alias );System.out.println();System.out.println(file: outFile.getAbsolutePath());}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);}}} 从此再不为https异常PKIX path building failed烦恼-CSDN博客
解决 sun.security.validator.ValidatorException: PKIX path building failed 的问题-CSDN博客
解决 sun.security.validator.ValidatorException: PKIX path building failed:-CSDN博客
PKIX path building failed的问题 - OSCHINA - 中文开源技术交流社区 2011年文章 文章到此已经结束以下是紫薯布丁
import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.security.KeyStore; import java.security.MessageDigest; import java.security.cert.CertificateException; import java.security.cert.X509Certificate;
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;
/** * * 编译InstallCert.java然后执行java InstallCert hostname比如 java InstallCert * www.twitter.com 会看到如下信息 */ public class InstallCert { public static void main(String[] args) throws Exception { String host; int port; char[] passphrase; host api.mch.weixin.qq.com; port 443; String p changeit; passphrase p.toCharArray(); File file new File(jssecacerts); if (file.isFile() false) { char SEP File.separatorChar; File dir new File(System.getProperty(java.home) SEP lib SEP security); file new File(dir, jssecacerts); if (file.isFile() false) { file new File(dir, cacerts); } } System.out.println(Loading KeyStore file ...); InputStream in new FileInputStream(file); KeyStore ks KeyStore.getInstance(KeyStore.getDefaultType()); ks.load(in, passphrase); in.close(); SSLContext context SSLContext.getInstance(TLS); TrustManagerFactory tmf TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); tmf.init(ks); X509TrustManager defaultTrustManager (X509TrustManager) tmf.getTrustManagers()[0]; SavingTrustManager tm new SavingTrustManager(defaultTrustManager); context.init(null, new TrustManager[]{tm}, null); SSLSocketFactory factory context.getSocketFactory(); System.out.println(Opening connection to host : port ...); SSLSocket socket (SSLSocket) factory.createSocket(host, port); socket.setSoTimeout(10000); try { System.out.println(Starting SSL handshake...); socket.startHandshake(); socket.close(); System.out.println(); System.out.println(No errors, certificate is already trusted); } catch (SSLException e) { System.out.println(); e.printStackTrace(System.out); } X509Certificate[] chain tm.chain; if (chain null) { System.out.println(Could not obtain server certificate chain); return; } BufferedReader reader new BufferedReader(new InputStreamReader(System.in)); System.out.println(); System.out.println(Server sent chain.length certificate(s):); System.out.println(); MessageDigest sha1 MessageDigest.getInstance(SHA1); MessageDigest md5 MessageDigest.getInstance(MD5); for (int i 0; i chain.length; i) { X509Certificate cert chain[i]; System.out.println( (i 1) Subject cert.getSubjectDN()); System.out.println( Issuer cert.getIssuerDN()); sha1.update(cert.getEncoded()); System.out.println( sha1 toHexString(sha1.digest())); md5.update(cert.getEncoded()); System.out.println( md5 toHexString(md5.digest())); System.out.println(); } System.out.println(Enter certificate to add to trusted keystore or q to quit: [1]); String line reader.readLine().trim(); int k; try { k (line.length() 0) ? 0 : Integer.parseInt(line) - 1; } catch (NumberFormatException e) { System.out.println(KeyStore not changed); return; } X509Certificate cert chain[k]; String alias host - (k 1); ks.setCertificateEntry(alias, cert); File outFile new File(jssecacerts); OutputStream out new FileOutputStream(outFile); System.out.println(out); ks.store(out, passphrase); out.close(); System.out.println(); System.out.println(cert); System.out.println(); System.out.println(Added certificate to keystore jssecacerts using alias alias ); System.out.println(); System.out.println(file: outFile.getAbsolutePath()); } 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); } }
}