软件准备: http://www.openssl.org/related/binaries.html 在这里可以下载到windows版本的,当前版本 v0.9.8g
也许很多人和本人一样深有体会,使用OpenSSL库写一个加密通讯过程,代码很容易就写出来了,可是整个工作却花了了好几天。除将程序编译成功外(没有可以使用的证书文件,编译成功了,它并不能跑起来,并不表示它能正常使用,所以......),还需生成必要的证书和私钥文件使双方能够成功验证对方。
找了n多的资料,很多是说的很模糊,看了n多的英文资料,还是没有办法(不知道是不是外国朋友都比较厉害,不用说明得太清?),无意间找到yawl (yawl@nsfocus.com)写的文章,难得的汉字(呵呵)。里面有生成证书部分,说到生成了 Certificate Signing Request (CSR)文件后,就有点不太清楚了。后面生成自签字证书在很多地方都可以找到的,签名这部分,yawl说mod_ssl有比较好的脚本,但是笔者一时找不到,就自己用openssl的ca命令来完成了,也不是很麻烦。
说说本人的操作环境:无盘工作站(有权限问题使用起来不太方便),操作目录是openssl/bin(没办法改不了环境变量,如果你可以改的话,就不用在这个目录下工作了),为了方便本人把apps下的openssl.cnf也复制到了这个目录下来。文件名都是以本人使用的来说了:
1.首先要生成服务器端的私钥(key文件):
openssl genrsa -des3 -out server.key 1024
运行时会提示输入密码,此密码用于加密key文件(参数des3便是指加密算法,当然也可以选用其他你认为安全的算法.),以后每当需读取此文件(通过openssl提供的命令或API)都需输入口令.如果觉得不方便,也可以去除这个口令,但一定要采取其他的保护措施!
去除key文件口令的命令:
openssl rsa -in server.key -out server.key
2.openssl req -new -key server.key -out server.csr -config openssl.cnf
生成Certificate Signing Request(CSR),生成的csr文件交给CA签名后形成服务端自己的证书.屏幕上将有提示,依照其指示一步一步输入要求的个人信息即可.
3.对客户端也作同样的命令生成key及csr文件:
openssl genrsa -des3 -out client.key 1024
openssl req -new -key client.key -out client.csr -config openssl.cnf
4.CSR文件必须有CA的签名才可形成证书.可将此文件发送到verisign等地方由它验证,要交一大笔钱,何不自己做CA呢.
1)在bin目录下新建目录 demoCA、demoCA/certs、demoCA/certs 、 demoCA/newcerts
2) 在demoCA建立一个空文件 index.txt
3) 在demoCA建立一个文本文件 serial, 没有扩展名,内容是一个合法的16进制数字,例如 0000
4) openssl req -new -x509 -keyout ca.key -out ca.crt -config openssl.cnf
5.用生成的CA的证书为刚才生成的server.csr,client.csr文件签名:
Openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cnf
Openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key -config openssl.cnf
现在我们所需的全部文件便生成了.
另:
client使用的文件有:ca.crt,client.crt,client.key
server使用的文件有:ca.crt,server.crt,server.key
.crt文件和.key可以合到一个文件里面,本人把2个文件合成了一个.pem文件(直接拷贝过去就行了) (openssl新的版本已经放到demoCA/newcerts目录下了)
原文 : http://blog.csdn.net/darkstar21cn/archive/2005/06/11/392492.aspx
分享到:
相关推荐
在IT行业中,理解和使用OpenSSL生成证书是至关重要的,特别是对于网络服务器配置和安全通信。 "OpenSSL 一键生成证书"项目是针对OpenSSL进行的二次开发,旨在简化证书创建过程。通常,生成SSL/TLS证书需要一系列...
根据提供的文档信息,本文将详细解释如何通过OpenSSL生成安全证书并在WebLogic环境中...以上就是使用OpenSSL生成证书并在WebLogic中进行SSL配置的详细步骤。通过这些步骤,可以确保应用程序的数据传输安全性得到保障。
3. **OpenSSL命令行工具**:OpenSSL提供了一系列的命令行工具,如`openssl x509`用于处理X509证书,`openssl rsa`用于处理RSA密钥,以及`openssl pkcs12`用于处理P12文件。掌握这些工具的使用方法对于管理和操作证书...
本文将详细介绍如何使用openssl工具生成单向SSL证书,以及如何将其应用于基于Boost.Asio库的SSL通讯测试。 首先,让我们了解什么是单向SSL认证。在单向SSL认证中,服务器验证其身份给客户端,但客户端无需向服务器...
- macOS和Linux的openssl命令行工具:这两个操作系统通常已经预装了OpenSSL,可以直接使用。 3. 使用OpenSSL生成本地SSL证书步骤: - 安装OpenSSL:根据你的操作系统下载并安装OpenSSL。 - 创建私钥:使用`...
在这个过程中,我们通常会使用OpenSSL命令行工具,然后通过Java程序来调用这些系统命令。下面将详细讲解这个过程以及涉及的相关知识点。 首先,OpenSSL是一个强大的安全套接层(SSL)和传输层安全(TLS)协议实现...
2. 创建私钥:使用OpenSSL命令行工具生成RSA私钥,例如: ``` openssl genrsa -out server.key 2048 ``` 这会创建一个名为`server.key`的2048位RSA私钥。 3. 生成CSR(Certificate Signing Request):接下来,...
使用 OpenSSL 命令可以生成证书和自签名,以下是相关知识点的总结: 一、预安装准备 在开始使用 OpenSSL 之前,需要安装相关的软件和工具。首先,需要安装 Visual Studio 2005,因为 OpenSSL 的编译需要使用 VC++ ...
### 使用OpenSSL为Apache生成SSL证书 #### 一、引言 随着互联网技术的发展与用户对数据安全意识的提升,HTTPS协议已经成为网站标配之一。HTTPS不仅能够加密传输数据,还能验证服务器身份,确保用户访问的是真实...
- **可执行文件**:如果编译时包含了某些工具,如 `openssl` 命令行工具,那么也会生成相应的可执行文件,用于执行加密、解密、生成证书等操作。 使用编译后的头文件的优点在于,你可以快速地在项目中集成 OpenSSL...
下面将详细介绍这两个工具以及如何使用它们生成证书。 1. **openssl** OpenSSL是一款开源的SSL/TLS库,它包含了一系列强大的加密算法,支持多种证书格式。在HTTPS证书生成过程中,openssl主要用来生成私钥和CSR...
在 Windows 32 位系统上,可以使用 OpenSSL 命令行工具来生成自签名证书或申请 CA 签发的证书。以下是一些基本操作: - **生成私钥**: `openssl genpkey -algorithm RSA -out server.key` 生成 RSA 加密算法的私钥...
以上就是Tomcat SSL认证设置及证书自动生成的完整流程,包括了使用OpenSSL和keytool生成证书、在Tomcat中配置SSL以及在客户端浏览器导入证书的详细步骤。这个过程中,安全性和合规性是至关重要的,因为自签发的证书...
OpenSSL 是一个强大的安全套接层(SSL)和传输层安全(TLS)协议实现库,同时也包含了各种密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供丰富的应用程序供测试或其他目的使用。在本文中,我们将深入...
- **生成密钥对**:可以使用 `openssl genpkey` 命令生成 RSA、DSA 或 EC 密钥对。 - **创建证书请求**:使用 `openssl req` 创建 X.509 证书请求,通常用于向证书颁发机构(CA)申请证书。 - **自签名证书**:通过 ...
当你尝试使用 OpenSSL 创建证书时,如果系统找不到这个配置文件,会报错并提示你需要提供 `openssl.cnf`。以下是对 `openssl.cnf` 文件及其相关知识点的详细解释: 1. **配置文件结构**: `openssl.cnf` 文件遵循 ...
OpenSSL 提供了一系列强大的命令行工具,如 `openssl s_client` 可用于测试 SSL/TLS 连接到服务器,`openssl s_server` 可以模拟一个服务器以进行测试,还有 `openssl rand` 用于生成随机数,等等。 6. **安全性**...
4. **命令行工具**:OpenSSL提供了一系列命令行工具,如`openssl genrsa`生成RSA私钥,`openssl req`创建证书请求,`openssl x509`处理证书等,方便进行证书管理和操作。 5. **库函数**:OpenSSL还提供了一组C语言...
OpenSSL命令行工具提供了诸如生成证书、密钥、进行加密解密操作等功能。 2. **SSL/TLS协议** SSL(Secure Sockets Layer)和TLS(Transport Layer Security)协议是网络通信中的安全标准,用于在客户端和服务器...
1. **生成私钥**:使用openssl命令行工具生成RSA或ECDSA私钥。 ``` openssl genrsa -out server.key 2048 ``` 2. **创建CSR**:基于私钥生成证书签名请求,包含服务器的相关信息。 ``` openssl req -new -key ...