使用OpenSSL自建CA并签发证书

2019-07-06 0 条评论 628 次阅读 0 人点赞

在计算机网络上,OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连线者的身份。这个包广泛被应用在互联网的网页服务器上。 其主要库是以C语言所写成,实现了基本的加密功能,实现了SSL与TLS协议。


用法:openssl command [ command_opts ] [ command_args ]

OpenSSL的子命令分为三类:

  1. Standard commands 标准命令:
    包含genrsa、ca、req、x509之类用于自签证书的命令和passwd、rand等其他常用命令
  2. Message Digest commands 单向加密命令:dgst
    支持md2、md4、md5、sha、sha1、rmd160算法

    openssl dgst [-sha|-sha1|-mdc2|-ripemd160|-sha224|-sha256|-sha384|-sha512|-md2|-md4|-md5|-dss1] [-c][-d] [-hex] [-binary] [-out filename][file...]

  3. Cipher commands,对称加密命令:enc
    支持aes-126-cbc、cast、des、rc4、des3等60多种加密算法

    openssl enc -ciphername [-in filename] [-out filename] [-e] [-d] [-a/-base64] [-k password] [-kfile filename] [-K key] [-S salt] [-salt] [-nosalt]
    -e 加密
    -d 解密
    -a base64
    -k 解密密钥
    -salt 加料


OpenSSL签发证书需要建立CA机构

  1. 建立CA所需相关目录及文件(系统默认/etc/pki/CA/)

    ca
    ├── certs 证书目录
    ├── crl 证书吊销目录
    ├── newcerts CA 签发的证书备份
    ├── private 私钥目录

    ├── index.txt CA 签发证书列表
    └── serial CA 下一次签发证书时使用的序列号(需要先添加一个“01”序号在里面)

  2. 生成CA私钥:
    ~]# cd /etc/pki/CA
    ~]# (umask 077;openssl genrsa -out private/cakey.pem NUM(私钥位数))

  3. 签发CA证书
    openssl req -new -x509 -key private/ca.key -out cacert.pem -days 3650


签发用户证书

  1. 生成用户证书私钥
    openssl genrsa -out /root/user.key 2048
  2. 生成用户证书签发请求(.csr)
    openssl req -new -key /root/user.key -out /root/user.csr -days 365
  3. 发送给CA所在主机签发
    openssl ca -in /root/user.csr -out /root/user.crt -days 365

对签发证书的常用操作

  • 查看证书的内容:
    ~]# openssl x509 -in cert.pem -text -noout
  • 吊销证书:
    ~]# openssl ca -revoke cert.pem -config openssl.cnf
  • 证书吊销列表:
    ~]# openssl ca -gencrl -out cacert.crl -config openssl.cnf
  • 查看列表内容:
    ~]#openssl crl -in cacert.crl -text -noout

once

这个人太懒什么东西都没留下

文章评论(0)