如何使用Openssl 制作CA证书

2023-06-26,,

一、SSL协议百科名片

  SSL是Secure Socket Layer(安全套接层协议),可以在Internet上提供秘密性传输。Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议标准。其目标是保证两个应间通信的保密性和可靠性,可在服务器端和用户端同时实现支持。

  SSL协议要求建立在可靠的传输层协议(TCP)之上。SSL协议的优势在于它是与应用层协议独立无关的,高层的应用层协议(HTTP,FTP,TELNET等)能透明地建立于SSL协议之上。SSL协议在应用层协议通信之前就已经完成加密算法、通信秘钥的协商及服务器认证工

  SSL协议提供的安全信道有以下三个特性:

   1、机密性:确保数据是保密性和隐私性的。

   2、完整性:确保接收到的为完完整整的信息。

   3、可用性:确保整个性能的可以用来作为安全验证的标示。

OpenSSL是一个强大的安全套接字层密码库,Apache使用它加密HTTPS,OpenSSH使用它加密SSH,它还是一个多用途的、跨平台的密码工具,OpenSSL包含一个命令行工具用来完成OpenSSL库中的所有功能。


二、Openssl的简介

   OpenSSL是一个强大的安全套接字层密码库,Apache使用它加密HTTPS,OpenSSH使用它加密SSH,不只是可以将其当做一个库来使用,还是一个多用途的、跨平台的密码工具,OpenSSL包含一个命令行工具用来完成OpenSSL库中的所有功能。

OpenSSL整个软件包大概可以分成三个主要的功能部分

1、Libcrypto:密码算法库,负责加密与解密;

   2、Libssl:SSL协议库,实现ssl协议功能的会话库;

   3、httpd mod_ssl :openssl 命令行工具。


三、数字证书

  数字证书是一种权威性的电子文档,由权威公正的第三方机构,即CA中心签发的证书。

以数字证书为核心的加密技术(加密传输、数字签名、数字信封等安全技术)可以对网络上传输的信息进行加密和解密、数字签名和签名验证,确保网上传递信息的机密性、完整性及交易的不可抵赖性。

  数字证书可用于:发送安全电子邮件、访问安全站点、网上证券交易、网上招标采购、网上办公、网上保险、网上税务、网上签约和网上银行等安全电子事务处理和安全电子交易活动。

  PKI:Public Key Infrastructure,是指用公钥概念和技术来实施和提供安全服务的具有普适性的安全基础设施。

一个完整的PKI系统必须具有注册机构(RC)、权威认证机构(CA)、数字证书库、密钥备份及恢复系统、证书吊销系统(CRL)、端实体(API即应用接口)等基本构成部分。

四、证书格式

目前数字证书的格式普遍采用的是X.509V3国际标准,一个标准的X.509数字证书包含以下一些内容: 证书的版本信息;
  证书的序列号,每个证书都有一个唯一的证书序列号;
  证书所使用的签名算法;
  证书的发行机构名称,命名规则一般采用X.500格式;
  证书的有效期,现在通用的证书一般采用UTC时间格式,它的计时范围为1950-2049;
  证书所有人的名称,命名规则一般采用X.500格式;
证书所有人的公开密钥

  证书发行者对证书的签名。

五、利用Openssl制作证书的相关命令

1、加密数据

# openssl enc -des3 -in /path/to/somefile -e -out /path/to/somefile.des3

2、解密数据

# openssl enc -des3 -in /path/to/somefile.des3 -d -out /path/to/somefile

  3、获取加密所需的特征码

# openssl dgst -md5 -hex /path/to/somefile
# md5sum

  4、测试加密速度

# openssl speed

  5、添加密码时计算其密码值

# openssl passwd -l -salt

  6、生成随机数

# openssl rand -base64 num
# openssl rand -hex num

7、生成私钥

# openssl genrsa 2^n > /path/to/keyfile
# openssl genrsa -out /path/to/keyfile 2^n
# (umask 077; openssl genrsa -out /root/mykey2.pri 2048)

8、提取公钥

# openssl rsa -in /path/to/keyfile -pubout

六、如何申请证书

  1、生成一个私钥;

2、制作一个证书签署请求;

# openssl req -new -key /path/to/private_key -out /paht/to/certificate.csr

  3、由CA负责签署证书;

七、如何自建CA

  1、为CA生成一个私钥;

# cd /etc/pki/CA/
# (umask 077; openssl genrsa -out private/cakey.pem 2048)

2、生成自签证书;

# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 365
# touch index.txt
# echo 01 > serial

3、签署证书

# openssl ca -in /path/to/certreq.csr -out /path/to/certfile.crt -days 365

八、客户端测试CA证书

# openssl s_client -connect HOST:PORT -CAfile /path/to/cacertfile|-CApath /paht/to/cacertfiles_dir/ -ssl2|-ssl3|-tls1

九、Openssl后缀名的文件

1).key格式:私有的密钥

2).crt格式:证书文件,certificate的缩写

3).csr格式:证书签名请求(证书请求文件),含有公钥信息,certificate signing request的缩写

4).crl格式:证书吊销列表,Certificate Revocation List的缩写

5).pem格式:用于导出,导入证书时候的证书的格式,有证书开头,结尾的格式








《如何使用Openssl 制作CA证书.doc》

下载本文的Word格式文档,以方便收藏与打印。