「java生成数字证书」java 生成证书

博主:adminadmin 2023-03-20 01:25:08 270

本篇文章给大家谈谈java生成数字证书,以及java 生成证书对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

ws-security数字证书为什么提示加载不了文件

第一步 生成可用的数字证书

使用命令行打开您要生成数字证书的路径

生成证书还是比较麻烦的,要用到jdk的一个工具——keytool

首先,创建客户端KeyStore和公钥

在命令行运行:

1、创建私钥和KeyStore: keytool -genkey -alias clientprivatekey -keypass keypass -keystore Client_KeyStore.jks -storepass storepass -dname "CN=tongtech.com,C=CN" -keyalg RSA

创建KeyStore,文件名字为Client_KeyStore.jks,里面有个名为clientprivatekey的私钥。

2、给私钥进行自签名: keytool -selfcert -keystore Client_KeyStore.jks -storepass storepass -alias clientprivatekey -keypass keypass

签名成功,无任何提示。

3、导出私钥

作用是导出的证书将作为公钥保存到TrustStore中。 keytool -export -alias clientprivatekey -file Client_PublicCert.cer -keystore Client_KeyStore.jks -storepass storepass

如果成功,可以看到提示:

保存在文件中的认证 Client_PublicCert.cer

然后创建服务端KeyStore

1、创建私钥和KeyStore

keytool -genkey -alias serverprivatekey -keypass keypass -keystore Server_KeyStore.jks -storepass storepass -dname "CN=tongtech.com,C=CN" -keyalg RSA

2、给私钥进行自签名

keytool -selfcert -keystore Server_KeyStore.jks -storepass storepass -alias serverprivatekey -keypass keypass

3、导出私钥

keytool -export -alias serverprivatekey -file Server_PublicCert.cer -keystore Server_KeyStore.jks -storepass storepass

接下来,将客户端公钥导入到服务端TrustStore中,将服务端公钥导入到客户端TrustStore中。

在命令行中输入:

keytool -import -alias clientpublickey -file Client_PublicCert.cer -keystore Server_TrustStore.jks -storepass storepass

回车后会提示

引用

所有者:CN=tongtech.com, C=CN

签发人:CN=tongtech.com, C=CN

序列号:4cc7e86c

有效期: Wed Oct 27 16:53:00 CST 2010 至Tue Jan 25 16:53:00 CST 2011

证书指纹:

MD5:FB:AB:71:9F:56:F3:CB:65:16:DC:52:E0:2D:27:FF:F6

SHA1:06:A8:B1:B4:E2:42:9D:B2:F7:99:E7:70:34:08:96:52:E1:CD:4A:76

签名算法名称:SHA1withRSA

版本: 3

信任这个认证? [否]:

打y即可,然后提示

引用

认证已添加至keystore中

同理,将服务端公钥导入到客户端TrustStore中

keytool -import -alias serverpublickey -file Server_PublicCert.cer -keystore Client_TrustStore.jks -storepass storepass

同样会出现提示,打y回车,提示成功就可以了。

最终你会在您的文件夹中看到如下的文件

第二步 服务端配置

1.放置证书的位置和属性配置

将上面生成的文件以Server开头的文件放置在src的cert包下

配置Server_Decrypt.properties,内容如下

org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin

org.apache.ws.security.crypto.merlin.keystore.type=jks

org.apache.ws.security.crypto.merlin.keystore.password=storepass

org.apache.ws.security.crypto.merlin.keystore.alias=serverprivatekey

org.apache.ws.security.crypto.merlin.file=cert/Server_KeyStore.jks

这里有个问题要注意,要注意去除空格,否则会报org.apache.ws.security.components.crypto.Merlin Not Found的error

配置Server_Verf.properties,内容如下

org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin

org.apache.ws.security.crypto.merlin.keystore.type=jks

org.apache.ws.security.crypto.merlin.keystore.password=storepass

org.apache.ws.security.crypto.merlin.keystore.alias=clientpublickey

org.apache.ws.security.crypto.merlin.file=cert/Server_TrustStore.jks

2.设置配置文件(由于在上一篇文章已经有了基本的配置,这里直接给出WSS4JInInterceptor的配置)

bean id="WSS4JInInterceptorCert" class="org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor"

constructor-arg

map

entry key="action" value="Signature Encrypt" /

entry key="signaturePropFile" value="Server_SignVerf.properties"/

entry key="decryptionPropFile" value="Server_Decrypt.properties"/

entry key="passwordCallbackClass" value="ws.interceptor.UTPasswordServerCallBack"/

/map

/constructor-arg

/bean

3.UTPasswordServerCallBack类

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

import java.io.IOException;

import javax.security.auth.callback.Callback;

import javax.security.auth.callback.CallbackHandler;

import javax.security.auth.callback.UnsupportedCallbackException;

import org.apache.ws.security.WSPasswordCallback;

public class UTPasswordServerCallBack implements CallbackHandler {

public void handle(Callback[] callbacks) throws IOException,

UnsupportedCallbackException {

WSPasswordCallback pc = (WSPasswordCallback) callbacks[0];

pc.setPassword("keypass");

System.out.println("Server Identifier=" + pc.getIdentifier());

System.out.println("Server Password=" + pc.getPassword());

}

}

第三部 客户端配置

1.放置证书的位置和属性配置

将上面生成的文件以Client开头的文件放置在src的cert包下

配置Client_Encrypt.properties,内容如下

org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin

org.apache.ws.security.crypto.merlin.keystore.type=jks

org.apache.ws.security.crypto.merlin.keystore.password=storepass

org.apache.ws.security.crypto.merlin.keystore.alias=serverpublickey

org.apache.ws.security.crypto.merlin.file=cert/Client_TrustStore.jks

配置Client_Sign.properties,内容如下

org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin

org.apache.ws.security.crypto.merlin.keystore.type=jks

org.apache.ws.security.crypto.merlin.keystore.password=storepass

org.apache.ws.security.crypto.merlin.keystore.alias=clientprivatekey

org.apache.ws.security.crypto.merlin.file=cert/Client_KeyStore.jks

2.设置配置文件(由于在上一篇文章已经有了基本的配置,这里直接给出WSS4JOutInterceptor的配置)

bean id="WSS4JOutInterceptorCert" class="org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor"

constructor-arg

map

entry key="action" value="Signature Encrypt"/

entry key="user" value="clientprivatekey"/

entry key="signaturePropFile" value="Client_Sign.properties"/

entry key="encryptionUser" value="serverpublickey"/

entry key="encryptionPropFile" value="Client_Encrypt.properties"/

entry key="passwordCallbackClass" value="ws.erp.UTPasswordClientCallBack"/

/map

/constructor-arg

/bean

3.UTPasswordClientCallBack类

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

import java.io.IOException;

import javax.security.auth.callback.Callback;

import javax.security.auth.callback.CallbackHandler;

import javax.security.auth.callback.UnsupportedCallbackException;

import org.apache.ws.security.WSPasswordCallback;

public class UTPasswordClientCallBack implements CallbackHandler {

public void handle(Callback[] callbacks) throws IOException,

UnsupportedCallbackException {

WSPasswordCallback pc = (WSPasswordCallback) callbacks[0];

pc.setPassword("keypass");

System.out.println("Client Identifier=" + pc.getIdentifier());

System.out.println("Client Password=" + pc.getPassword());

}

}

最后结合你的webservice,直接调用你的服务方法就可以了,如果出现以下的提示就证明你成功了

1,java生成数字证书为什么会出现下图情况?我先说一下我是怎么做的。请高手指点

你配置的是单向SSL,tomcat不会对用户身份作出验证。只是在tomcat和浏览器之间建立了SSL通道。身份验证部分还得自己写。

java 签发数字证书程序无错误,但运行出现错误如下结果,请问是什么问题?

证书的密码验证错误,

对于很多服务器比如tomcat之类的,在证书过期,我们需要删除时,需要输入保护密码,默认的就是changeit,输入这个密码就可以了。

如何用Java调用Openssl生成一个数字证书

openssl genrsa -des3 -out server.key 1024运行时会提示输入密码,此密码用于加密key文件(参数des3便是指加密算法,当然也可以选用其他你认为安全的算法.),以后每当需读取此文件(通过openssl提供的命令或API)都需输入口令.如果觉得不方便,也可以..

用java怎么实现CA颁发的数字证书的认证功能

PKI 目前使用最多的非对称算法是 RSA。对于基于 RSA 的 PKI 而言,CA 应有一对 RSA 的公私钥对,私钥是 CA 的生命,严格保密,而公钥则发布给使用方。CA 签发一张证书的话,主要是使用 CA 的 RSA 私钥对证书进行签名,并将签名结果保存在证书当中。使用者通过 CA 发布的公钥来验证证书中的签名值,就可以确定该证书是否是由该 CA 签发的。自己要做的就是从证书中提取签名数据和用于签名的原始数据,再使用 CA 的公钥验证这个签名就可以了。

java生成数字证书以及验证数字证书的问题

数字证书有很多种,如果X509,

事实上,java.security 可以完成的。先掌握概念,做起来并不难。也可以百度得到。

java生成数字证书的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java 生成证书、java生成数字证书的信息别忘了在本站进行查找喔。