本文主要讲述使用openssl来生成ecdsa证书和RSA证书。
首先在openssl官网上下载openssl源码,然后进行编译安装。
这个过程本文不进行讲解。默认你的系统中已经安装好了openssl。
但是需要使用下载的源码。
本文中的代码等都是实测可用的。使用平台是linux,版本是ubuntu14.04
下面开始正文。
以下linux命令均在root用户下完成。
1、首先要创建一个CA
创建CA的方法是进去openssl的源码目录下的app/文件夹下。然后输入创建CA命令:
root@mzq-desktop:/home/mzq# cd Desktop/openssl-1.0.1j_mzq1/apps/
root@mzq-desktop:/home/mzq/Desktop/openssl-1.0.1j_mzq1/apps# sh CA.sh -newca
2、生成RSA密钥
生成rsa密钥使用命令openssl genrsa
root@mzq-desktop:/home/mzq/Desktop/openssl-1.0.1j_mzq1/apps# openssl genrsa -out server.key 2048
Generating RSA private key, 2048 bit long modulus
...................+++
.........................+++
e is 65537 (0x10001)
3、生成ECDSA密钥
生成ecdsa密钥使用命令openssl ecparam
root@mzq-desktop:/home/mzq/Desktop/openssl-1.0.1j_mzq1/apps# openssl ecparam -name secp384r1 -genkey -out server-ecc.key
3、生成证书请求
生成证书请求使用命令openssl req
RSA证书请求:
root@mzq-desktop:/home/mzq/Desktop/openssl-1.0.1j_mzq1/apps# openssl req -new -key server.key -out server.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:beijing
Locality Name (eg, city) []:beijing
Organization Name (eg, company) [Internet Widgits Pty Ltd]:dcs
Organizational Unit Name (eg, section) []:dcs
Common Name (e.g. server FQDN or YOUR name) []:mzq
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
ECDSA证书请求:
root@mzq-desktop:/home/mzq/Desktop/openssl-1.0.1j_mzq1/apps# openssl req -new -key server-ecc.key -out server-ecc.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:beijing
Locality Name (eg, city) []:beijing
Organization Name (eg, company) [Internet Widgits Pty Ltd]:dcs
Organizational Unit Name (eg, section) []:dcs
Common Name (e.g. server FQDN or YOUR name) []:mzq
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
4、签发证书
签发证书使用openssl ca命令
RSA证书:
root@mzq-desktop:/home/mzq/Desktop/openssl-1.0.1j_mzq1/apps# openssl ca -in server.csr -out server.crt -days 3650
Using configuration from /usr/local/ssl/openssl.cnf
Check that the request matches the signature
Signature ok
The countryName field needed to be the same in the
CA certificate (AU) and the request (CN)
ECDSA证书:
root@mzq-desktop:/home/mzq/Desktop/openssl-1.0.1j_mzq1/apps# openssl ca -in server-ecc.csr -out server-ecc.crt -days 3650
Using configuration from /usr/local/ssl/openssl.cnf
Check that the request matches the signature
Signature ok
The countryName field needed to be the same in the
CA certificate (AU) and the request (CN)
这样,证书就申请成功了。可以对证书进行使用。
相关推荐
OpenSSL是一个开源项目,提供了一系列强大的加密和证书管理功能,广泛应用于网络通信安全领域。它包含了多种加密算法,其中包括椭圆曲线数字签名算法(ECDSA)。ECDSA是基于椭圆曲线密码学(ECC)的一种公钥加密算法...
ECDSA(椭圆曲线数字签名算法)是另一种非对称加密方法,通常被认为比RSA更安全且效率更高。你可以这样生成ECDSA密钥对: ``` openssl ecparam -genkey -name secp256k1 -out private_key.pem openssl ec -in ...
下面将详细介绍这两个工具以及如何使用它们生成证书。 1. **openssl** OpenSSL是一款开源的SSL/TLS库,它包含了一系列强大的加密算法,支持多种证书格式。在HTTPS证书生成过程中,openssl主要用来生成私钥和CSR...
2. **创建CSR**: 基于私钥,使用`openssl req`生成证书签名请求。CSR包含了组织信息、地理位置等,这些信息将被包含在最终的证书中。 3. **签发证书**: 如果是自签名证书,可以直接用私钥签署CSR,使用`openssl x509...
- 创建私钥:使用`openssl genpkey`命令生成RSA或ECDSA私钥。 - 创建证书请求:使用`openssl req`命令创建证书请求,填写相关信息如组织名、国家等。 - 自签发证书:使用`openssl x509`命令,使用之前生成的私钥...
与RSA等传统公钥算法相比,ECDSA具有更高的安全性和更小的密钥长度,从而在计算效率上具有优势。 ECDSA的基本原理是,每个用户拥有一对密钥:一个私钥和一个公钥。私钥是保密的,用于签名;公钥是公开的,用于验证...
通过以上步骤,我们可以使用 OpenSSL 免安装版轻松地生成和管理公私钥对,进行加密和解密操作,以及数字签名。这为网络通信的安全提供了基础保障。无论是在开发服务器证书、加密传输还是进行数字签名验证时,OpenSSL...
使用 OpenSSL 生成自签名证书,命令为:`openssl x509 -req -days 365 -in rsa.csr -signkey rsa.key -out rsa_changtao.cer` 5. 证书格式 证书格式有两种:DER 格式和 PEM 格式。 5.1 DER 格式 DER 格式是一种...
2. **创建CSR(Certificate Signing Request)**:使用`openssl req`命令,根据`myopenssl.cnf`中的配置生成证书签名请求,其中包含了公钥和证书请求者的身份信息。 3. **自签证书**:使用`openssl x509`命令,可以...
对称加密算法如AES、DES等,用于加密和解密数据,而非对称加密算法如RSA、DSA、ECDSA等,主要用于密钥交换、数字签名和身份验证。OpenSSL还支持散列算法如MD5、SHA系列等,用于数据的哈希处理。此外,OpenSSL也支持...
2. **密钥管理**:OpenSSL 支持创建 RSA、DSA 和 ECDSA 等不同类型的密钥对。密钥对包括公钥和私钥,公钥用于加密,私钥用于解密,确保数据安全。 3. **加密算法**:OpenSSL 提供了多种加密算法,如 AES、DES、Blow...
1. **生成私钥**:使用`openssl genpkey`命令创建一个RSA或ECDSA私钥。 2. **创建证书签名请求(CSR)**:使用`openssl req`命令,根据私钥生成CSR,其中包含组织信息、地理位置等。 3. **签发自签名证书**:使用`...
1. `libeay32.dll`:这是 OpenSSL 的核心库,包含了各种加密算法(如 RSA、DSA、ECDH、ECDSA 等)和哈希函数(如 MD5、SHA1、SHA256 等)的实现。 2. `libeay32.lib`:这是一个导入库文件,用于链接到 `libeay32.dll...
- 私钥生成:`openssl genpkey`用于生成不同类型的非对称密钥对,如RSA、ECDSA等。 - 密钥转换:`openssl rsa`, `openssl ec`等命令用于转换密钥格式,例如将PEM格式转换为DER格式。 6. **DH参数和ECDH密钥交换**...
2. **公钥基础设施(PKI)**:OpenSSL 提供了生成RSA、DSA、ECDSA等非对称密钥对的功能,以及创建X.509数字证书的工具,这对于HTTPS、SSH等基于证书的安全连接至关重要。 3. **SSL/TLS 协议**:OpenSSL 实现了SSL...
3. **公钥基础设施(PKI)**:OpenSSL可以生成RSA、DSA、ECDSA等类型的密钥对,创建证书请求(CSR),签发自签名证书,以及处理PEM、DER格式的证书。 4. **SSL/TLS通信**:`s_client`和`s_server`是两个实用工具,可以...
例如,`openssl genpkey`命令可以生成RSA或ECDSA等类型的密钥对;`openssl rsa`和`openssl ec`命令则用于查看、转换或修改这些密钥。在进行百度支付验证时,商家可能需要生成一对密钥,将公钥上传到百度支付平台,...
5. 数字签名:OpenSSL 支持 RSA、DSA、ECDSA 等数字签名算法,用于验证数据的完整性和发送者的身份。 6. 公钥操作:包括密钥的生成、加密和解密、签名和验证等,这些都是基于公钥密码学原理的。 7. X.509 证书处理...
3. `openssl genpkey`:生成私钥,例如RSA或ECDSA私钥。 4. `openssl req`:创建证书请求(CSR),这是申请数字证书的第一步。 5. `openssl x509`:处理X.509证书,可以用于生成自签名证书或者从CSR签发证书。 三、...
1. **加密算法**:OpenSSL支持多种加密算法,如RSA、DSA、ECDH、ECDSA等公钥加密算法,以及AES、DES、Blowfish等对称加密算法。这些算法用于保护数据的隐私性和完整性。 2. **SSL/TLS协议**:SSL(Secure Sockets ...