读书人

openssl生成证件供服务器端dotnet和

发布时间: 2012-10-19 16:53:36 作者: rapoo

openssl生成证书,供服务器端dotnet和 java客户端使用

前提: 为了安全考虑,原来使用dotnet发布的web service 使用ssl方式

修改: 需要为服务端dotnet颁发数字证书, iis 将生成的证书导入到证书库,dotnet的服务使用该证书。 为另一端java颁布证书, 调用web service的时候,需要提供可信任的证书。

使用工具: openssl

网上查了资料, 现在整理一下,以供备忘。

?

操作步骤:

一.? 生成CA证书

??? 不使用第三方CA机构, 自己创建密钥充当CA,来给双方签名。

?? 1. 生成创建私钥

?????? openssl genrsa -out ca/ca-key.pem 1024

?? 2. 创建证书请求

?????? openssl req -new -out ca/ca-req.csr -key ca/ca-key.pem -config openssl.cnf

?????? 接下来填写申请证书的相关信息

?? 3. 自签署证书

?????? openssl x509 -req -in ca/ca-req.csr -out ca/ca-cert.pem -signkey ca/ca-key.pem -days 3650

?? 4. 将证书导出浏览器支持的.p12格式:

?????? openssl pkcs12 -export -clcerts -in ca/ca-cert.pem -inkey ca/ca-key.pem -out ca/ca.p12

?

二. 生成server端证书

?? 1. 生成创建私钥

?????? openssl genrsa -out server/server-key.pem 1024

?? 2. 创建证书请求

?????? openssl req -new -out server/server-req.csr -key server/server-key.pem -config openssl.cnf

?????? 接下来填写申请证书的相关信息

?? 3. 自签署证书

?????? openssl x509 -req -in server/server-req.csr -out server/server-cert.pem -signkey server/server-key.pem -CA ca/ca-cert.pem -CAkey ca/ca-key.pem -CAcreateserial -days 3650

?? 4. 将证书导出浏览器支持的.p12格式:

?????? openssl pkcs12 -export -clcerts -in server/server-cert.pem -inkey server/server-key.pem -out server/server.p12

?

三. 生成客户端证书

??? 操作步骤和server端类似

四. 生成JKS证书

??? keytool? -keystore? xxx/truststore.jks -keypass 123456 -storepass 123456 -alias test -import -trustcacert -file ca/ca-cert.pem

五. 颁发证书

??? 1. 服务器端(dotnet): 双击server.p12文件导入到iis密钥库,然后再iis里将web service使用这个证书.

??? 2. 客户端(java): 将jks证书复制到项目下, 然后在调用服务的时候, 添加System.setProperty("javax.net.ssl.trustStore", "truststore.jks");

?

1 楼 zhb8015 2012-04-24 文章简洁,明了,学习了。但我有一个问题,生成的客户端的密钥和服务器端的密钥有什么关系呢?或者是没有关系,只是在SSL握手时能够根据pre_master_secret以及客户端与服务器的随机数值独立计算出加密和MAC密钥?

读书人网 >软件架构设计

热点推荐