- 浏览: 102808 次
- 性别:
- 来自: 上海
最新评论
-
kingtay:
...
查看class文件的字节码版本号 -
kkfbai:
补充说明一下:如果只想判断两个LIST是否有交集,可以使用Co ...
java 两list求交集
有两种方式
一.
Untitled如何把Https网站中的安全证书导入到java中的cacerts证书库中?在项目开发中,有时会遇到与SSL安全证书导入打交道的,如何把证书导入java中的cacerts证书库呢?
其实很简单,方法如下:
每一步:进入某个https://www.xxx.com开头的网站,把要导入的证书下载过来,
在该网页上右键
>> 属性 >> 点击"证书" >>
再点击上面的"详细信息"切换栏
>>
再点击右下角那个"复制到文件"的按钮
就会弹出一个证书导出的向导对话框,按提示一步一步完成就行了。
例如:保存为abc.cer,放在C盘下
第二步:如何把上面那步的(abc.cer)这个证书导入java中的cacerts证书库里?
方法如下
假设你的jdk安装在C:\jdk1.5这个目录,
开始
>> 运行 >> 输入cmd 进入dos命令行 >>
再用cd进入到C:\jdk1.5\jre\lib\security这个目录下
敲入如下命令回车执行
keytool -import -alias cacerts -keystore %java_home%\jre\lib\security\cacerts -file C:\abc.cer -trustcacerts
此时命令行会提示你输入cacerts证书库的密码,
你敲入changeit就行了,这是java中cacerts证书库的默认密码,
你自已也可以修改的。
二.
/*
* Copyright 2006 Sun Microsystems, Inc. All Rights
Reserved.
*
* Redistribution and use in source and binary
forms, with or without
* modification, are permitted provided that the
following conditions
* are met:
*
* -
Redistributions of source code must retain the above
copyright
* notice, this list of conditions and
the following disclaimer.
*
* - Redistributions in
binary form must reproduce the above
copyright
* notice, this list of conditions and
the following disclaimer in the
* documentation
and/or other materials provided with the
distribution.
*
* - Neither the name of Sun
Microsystems nor the names of its
*
contributors may be used to endorse or promote products
derived
* from this software without specific
prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE
COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
* IS" AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
*
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
*
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
*
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
*
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.
*/ import java.io.*;
import java.net.URL; import java.security.*;
import java.security.cert.*; import javax.net.ssl.*;
public class InstallCert { public static void main(String[] args) throws Exception
{
String host;
int port;
char[]
passphrase;
//传如参数 192.168.84.84:443 changeit
if ((args.length
== 1) || (args.length == 2)) {
String[] c =
args[0].split(":");
host =
c[0];
//默认取443端口
port =
(c.length == 1) ? 443 : Integer.parseInt(c[1]);
//默认密码为changeit
String p = (args.length == 1) ?
"changeit" : args[1];
passphrase =
p.toCharArray();
} else {
System.out.println("Usage: java InstallCert <host>[:port]
[passphrase]");
return;
} //创建jssecacerts文件
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);
//默认使用JKS的KEYSTORE TYPE
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); OutputStream out = new
FileOutputStream("jssecacerts");
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 +
"'");
} 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网站中的安全证书导入到java的cacerts证书库中.rar (3.7 KB)
- 下载次数: 41
发表评论
-
IDEA 社区版同一个项目启动多次
2022-09-23 07:58 397打开idea社区版的服务列表,选中要多次启动的项目,右键选 ... -
正则表达示提取匹配内容
2019-10-15 19:14 610public static void main(Strin ... -
java https tomcat 单双认证(含证书生成和代码实现)
2018-01-11 15:14 828https://www.cnblogs.com/sprin ... -
nginx1.0.4 配置
2014-09-17 11:51 754见附件 -
jconsole 远程连接
2014-08-21 14:18 1217linux服务器应用程序的启动配置如下: ####### ... -
判断一个字符中是否有乱码
2014-05-19 11:30 1343package com.test; import ja ... -
SizeOf对象的大小
2013-12-25 17:36 841private static void mobileno() ... -
JVM系列三:JVM参数设置、分析
2014-05-19 11:34 748不管是YGC还是Full GC,GC过程中都会对导致程序运 ... -
Eclipse去除js(JavaScript)错误
2013-08-20 09:46 604最近出了一个很怪的 ... -
webQQ-web版及时通信
2013-06-24 15:42 743webQQ-web版及时通信 带sql脚本 -
输出堆栈日志
2013-06-07 09:08 1094@echo off&setlocal enablede ... -
将JAVA应用程序打包成EXE可执行文件教程.doc
2013-04-15 14:11 929将JAVA应用程序打包成EXE可执行文件教程.doc -
java 获取当前运行服务的操作系统PID
2013-04-11 11:22 1056ManagementFactory.getRuntimeM ... -
LambdaProbe使用简介
2012-09-27 14:59 1012LambdaProbe使用简介 LambdaProb ... -
Java编程中“为了性能”尽量要做到的一些地方(转)
2012-03-08 14:21 2334最近的机器内存又爆满了,除了新增机器内存外,还应该好好revi ... -
java基础
2010-05-30 21:07 877String a = new String ... -
语录收集
2010-05-17 16:35 902设计模式 Abstract Factory:提供一个创建 ... -
循环bean的属性
2010-04-23 17:51 919private Map<String, String&g ... -
remove list
2009-11-20 10:22 963Iterator<AcctChargeConfigDTO ... -
身份证验证js
2009-09-16 18:19 1610//身份证验证 function checkIdcard(i ...
相关推荐
证书导入工具有助于将这些证书添加到Java的信任库,以便Java运行时能够识别并信任这些服务器。 首先,了解Java的信任库——cacerts。这是Java标准安装中自带的一个包含了根证书颁发机构(CA)的证书集合。当Java...
2. **解压并导入证书**:解压缩下载的证书链文件,然后使用Java的`keytool`命令行工具将其导入到Java的`cacerts`信任库中。`keytool`是一个用于管理密钥和证书的实用程序,内置于Java Development Kit (JDK)中。 3....
此时,我们需要将自签名的证书导入到JDK的信任证书库中。 导出服务器证书: ```bash keytool -export -trustcacerts -alias tomcat -file server.cer -keystore server.keystore -storepass changeit ``` 接着,将...
在这种情况下,我们需要手动将缺失的证书导入到JDK的证书库中。以下是一个详细的教程,解释如何在JAVA中导入Wosign证书来解决此类问题。 **问题描述:** 当Java程序尝试通过HTTPS连接到使用Wosign根证书签名的服务...
这种情况下,需要将自签名证书导入到Java的信任存储中,才能避免安全警告。 3. **证书的信任管理**:Java提供了`keytool`命令行工具来管理信任存储。可以添加、删除或更新信任的根证书。此外,也可以通过`cacerts`...
在Web应用中,Java加载证书的方式是至关重要的,特别是在涉及到安全通信,如HTTPS协议时。本文主要探讨如何在Java环境中导入自定义的证书库,以便于信任特定的SSL/TLS证书,特别是在Azure云平台上的操作步骤。 首先...
安装证书的关键步骤是通过`keytool`命令将证书导入到JDK的证书库中。具体的命令行格式如下: ```shell keytool -keystore "C:\Program Files\Java\jdk1.8.0_71\jre\lib\security\cacerts" -importcert -alias ...
2. **导入根证书到Java信任库**:将生成的根证书导入到Java的信任存储库。这通常涉及到将证书文件复制到`$JAVA_HOME/jre/lib/security/cacerts`目录下,并使用`keytool`命令行工具进行添加。`keytool -importcert -...
Java 密钥库证书导入 通过连接到主机并下载证书,简单地导入 Java 密钥库。 应该使用 https、smtp 或 ldap 证书。 要求 安装了Java。 角色变量 java_certificate_host: example.com java_certificate_port: 443 ...
然后,需要将这些证书导入到Java的密钥库(keystore)中,密钥库是一种用于存储密钥和证书的安全数据库。通常使用Java提供的keytool工具来导入证书。 导入证书到JDK的密钥库分为三步,分别是导入根证书、中间证书...
- **2-2 执行导入命令**:打开命令行工具,切换到证书所在的目录,然后执行以下命令来导入证书到Java的信任库: ```bash keytool -import -file <certificate-file> -alias <alias-name> -keystore ``` 其中`...
Java KeyTool 是 Java 安全套件中的一部分,用于创建、管理和维护数字证书。下面是使用 KeyTool 的详细指南,包括创建密钥对、导出证书、将证书导入 Java 信任证书库等内容。 生成密钥对 KeyTool 提供了生成密钥对...
`test_nciic.cer`文件可能是一个由测试环境提供的CA证书,我们需要将其添加到Java的信任存储库中。这可以通过以下步骤完成: - 使用`keytool`命令行工具导入证书: ``` keytool -importcert -file test_nciic.cer...
在Java中,`cacerts`就是默认的信任库,可以使用`-importcert`命令将新的CA证书导入。 10. **keytools.bat** 压缩包中的`keytools.bat`文件可能是一个批处理脚本,用于简化或自动化Keytool的一些常用操作。具体...
5. cacerts证书文件:cacerts文件是Java系统的CA证书仓库,它位于`java.home/lib/security`目录下。cacerts包含了Java信任的CA(证书颁发机构)证书列表,这些证书用于在SSL/TLS通信中进行证书认证。 6. 证书的准备...
- 将服务器端证书导入到 WebSphere 所使用的 JDK 的 `cacerts` 文件中: ```shell keytool -import -file server.cer -keystore <path-to-was-jre>/lib/security/cacerts -alias s1as ``` 其中 `...
这通常涉及将证书导入到Java的信任库(cacerts),可以通过`keytool`命令行工具完成。 2. **配置环境**:创建并配置一个`InitialLdapContext`实例,这是JNDI LDAP操作的基础。你需要提供AD服务器的URL、端口、绑定...
这通常涉及到将新的证书导入到`cacerts`文件中,这个文件通常位于Java的`jre/lib/security`目录下。 2. **临时信任特定的证书**:如果只是临时需要连接到某个服务器,可以使用Java的命令行选项`-Djavax.net.ssl....
- 将服务器和客户端证书导入信任的证书存储区(truststore): ```shell keytool -import -trustcacerts -alias tomcatserver -file server.cer -keystore cacerts -storepass qqsylkj2012Jellen keytool -...