`
morry
  • 浏览: 131535 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

    博客分类:
  • 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");

 

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

相关推荐

    使用 OpenSSL 创建生成CA 证书服务器客户端证书及密钥

    本文将详细介绍如何使用 OpenSSL 创建和管理CA证书、服务器证书和客户端证书,以实现SSL单向认证和双向认证。 首先,我们来看一下如何生成 CA(证书颁发机构)证书。CA证书是信任的根,用于签署其他证书,确保网络...

    java调用openssl生成证书

    Java调用OpenSSL生成证书是一种常见的安全操作,用于创建数字证书,这些证书在网络安全中扮演着重要角色,例如HTTPS通信、服务器身份验证等。在这个过程中,我们通常会使用OpenSSL命令行工具,然后通过Java程序来...

    openSSL生成证书以及在tomcat下的配置

    这将生成一个名为`server.crt`的服务器端证书文件,该文件包含了服务器的公钥信息和证书签名信息。 五、tomcat配置 在tomcat中,我们需要配置SSL/TLS证书,以便启用HTTPS连接。首先,我们需要将服务器端证书和私钥...

    java生成证书 包括openssl

    Java 生成证书是指通过 Java 的 keytool 工具和 OpenSSL 库生成数字证书的过程。在 HTTPS 环境下,证书是必不可少的组件, play a crucial role in ensuring the security and authenticity of online transactions....

    openssl生成证书

    生成证书是网络安全中的一项关键任务,主要用于验证服务器或客户端的身份。下面我们将详细介绍如何使用OpenSSL来生成证书,以及相关的证书转换操作。 一、OpenSSL编译与安装 在Windows环境下编译OpenSSL通常需要...

    openSSL制作证书并在tomcat上配置

    首先,我们将学习openSSL的基本概念和命令,然后逐步生成服务器端和客户端的证书文件,并介绍如何使用CA证书签名这些证书文件。最后,我们将介绍如何在Tomcat上配置这些证书文件。 openSSL简介 openSSL是一个开源的...

    java + keytool+openssl 实现批量生成客户端证书

    使用Java实现根据ca购买到的根证书 批量生产客户端需要的.bks和.cer文件,从而实现双向认证

    OpenSSL生成的ssl证书

    本教程将详细介绍如何使用OpenSSL在Windows环境下为Nginx服务器配置HTTPS服务,以及如何生成和管理SSL证书。 首先,了解SSL证书的作用。SSL证书通过加密通信,确保了用户与服务器之间的数据传输不被第三方窃取或...

    自签署根证书、服务器证书、客户端证书

    总结来说,自签署根证书、服务器证书和客户端证书在不同场景下各有作用,虽然自签署过程相对简单,但在公开互联网上,使用权威CA签发的证书更为可靠。理解并掌握这些证书的原理和操作,对于维护网络安全至关重要。

    利用OpenSSL生成证书详解

    在使用 OpenSSL 生成证书时,需要了解 SSL 协议的原理和实现机制。SSL 协议采用公开密钥技术,通过生成证书来确保通信的保密性和可靠性。OpenSSL 提供了丰富的工具和命令来生成证书,包括生成私钥、生成证书请求、...

    OpenSSL 一键生成证书

    在IT行业中,理解和使用OpenSSL生成证书是至关重要的,特别是对于网络服务器配置和安全通信。 "OpenSSL 一键生成证书"项目是针对OpenSSL进行的二次开发,旨在简化证书创建过程。通常,生成SSL/TLS证书需要一系列...

    OPenssl生成证书

    在本文中,我们将详细介绍如何使用 OpenSSL 生成证书,包括生成服务器端的私钥、Certificate Signing Request(CSR)文件和客户端的私钥和CSR文件。 首先,我们需要下载并安装 OpenSSL,然后进入/bin/目录,执行...

    Linux下用Openssl生成证书

    ### Linux下用OpenSSL生成...通过以上步骤,您可以在Linux环境下成功使用OpenSSL生成完整的X.509证书链,包括根证书、服务器证书和客户端证书。这些证书可用于搭建安全的网络通信环境,确保数据传输的安全性和机密性。

    OPenssl生成证书.docx

    在本文中,我们将详细探讨如何使用 OpenSSL 生成证书,包括服务器端和客户端的私钥、证书签名请求 (CSR) 以及去除私钥口令的过程。 首先,你需要下载并安装 OpenSSL。安装完成后,确保你在 `/bin` 目录下,然后将 `...

    openssl生成的证书demo

    通过这个“openssl生成的证书demo”,我们可以了解到OpenSSL在创建和管理数字证书方面的强大功能,这对于构建安全的网络服务和客户端应用至关重要。在理解和实践这些步骤后,你将能够更好地处理SSL/TLS证书相关的...

    openssl实现服务器和客户端

    这些资源通常会涵盖创建服务器端和客户端程序的基本步骤,包括初始化SSL_CTX,加载证书和私钥,以及处理连接事件。 总的来说,理解和掌握OpenSSL的使用对于任何涉及网络安全和服务器运维的IT专业人员都是至关重要的...

    使用openssl生成单向ssl证书

    编写一个简单的服务器和客户端程序,使用Boost.Asio库建立SSL连接并进行数据交换。测试过程中,客户端应能成功验证服务器的证书。 通过以上步骤,你就成功地使用openssl生成了单向SSL证书,并将其应用于基于Boost....

    OpenSSL创建生成CA证书、服务器、客户端证书及密钥

    本文将详细介绍如何使用OpenSSL来创建生成CA(Certificate Authority)证书、服务器证书和客户端证书以及它们对应的密钥。 首先,我们需要理解证书的基本概念。在SSL/TLS协议中,证书用于验证通信双方的身份,通常...

    OpenSSL证书生成器

    OpenSSL 证书生成器 可用于apache的ssl证书生成

    免费openssl 生成ssl证书[ssl证书生成]

    SSL证书是一种网络安全技术,用于在客户端浏览器和Web服务器之间建立一条加密的SSL安全通道。SSL(Secure Socket Layer,安全套接层)协议最初由Netscape Communication公司设计,目的是提供身份认证、数据加密传输...

Global site tag (gtag.js) - Google Analytics