阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

OpenSSL:实现创建私有CA、签署证书请求详解

551次阅读
没有评论

共计 6649 个字符,预计需要花费 17 分钟才能阅读完成。

一、OpenSSLCA默认配置信息

    1.证书签发机构 CA 公共信任CA、私有CA

              建立私有 CA 方式如下:

小范围测试使用openssl

大范围维护大量证书企业使用 OpenCA(openssl进行了二次封装,更加方便使用)

 

    2.openssl 配置文件:/etc/pki/tls/openssl.cnf

     [root@localhost tmp]# cat  /etc/pki/tls/openssl.cnf

该配置文件中以 “[ 配置段 ]”, 的形式配置相关信息

====================================openssl.cnf部分内容摘要=====================================

# OpenSSL example configuration file.

# This is mostly being used for generation of certificate requests.

######################################################################################

[ca]        #CA相关配置段

default_ca        = CA_default                # The default ca section                # 默认 CA[CA_default]配置

######################################################################################

[CA_default]        #  默认当做 CA 的工作环境

dir                = /etc/pki/CA                # Where everything is kept默认工作目录,变量形式

certs                = $dir/certs                # Where the issued certs are kept签发的证书位置

crl_dir                = $dir/crl                # Where the issued crl are kept吊销的证书位置

database        = $dir/index.txt                  # database index file.颁发过的证书索引文件

new_certs_dir        = $dir/newcerts                # default place for new certs.

 

certificate        = $dir/cacert.pem         # The CA certificate指明 CA 的自签证书

serial                = $dir/serial                 # The current serial number指明当前证书序列号,第一次要指定

crlnumber        = $dir/crlnumber        # the current crl number

# must be commented out to leave a V1 CRL

crl                = $dir/crl.pem                 # The current CRL

private_key        = $dir/private/cakey.pem# The private keyCA自己的私钥

RANDFILE        = $dir/private/.rand        # private random number file

 

x509_extensions        = usr_cert                # The extentions to add to the cert

 

# Comment out the following two lines for the “traditional”

# (and highly broken) format.

name_opt         = ca_default                # Subject Name options

cert_opt         = ca_default                # Certificate field options

 

default_days        = 365                        # how long to certify for证书的默认有效期

default_crl_days= 30                        # how long before next CRL默认声明有效期

default_md        = sha256                # use SHA-256 by default默认的生成算法

preserve        = no                        # keep passed DN ordering

####################################################################

[req]        # CA 证书签署发起注册请求相关属性

default_bits                = 2048

default_md                = sha256

default_keyfile         = privkey.pem

distinguished_name        = req_distinguished_name

attributes                = req_attributes

x509_extensions        = v3_ca        # The extentions to add to the self signed cert

===============================================================================================

 

 

 

 

二、OpenSSL:创建私有证书签发机构 CA 步骤

在确定配置为 CA 的服务 器主机 上生成一个自签证书,并为 CA 提供所需要的目录及文件;

在真正的通信过程中 CA 服务器主机不需要网络参与,只需要参与到签名中,不需要提供服务

      1.生成私钥;

~]# (umask 077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096)

    因为在默认配置文件中默认配置/etc/pki/CA/private/cakey.pem,所以指定目录和文件名要和配置文件一致

OpenSSL:实现创建私有 CA、签署证书请求详解

 

      2.生成 CA 自签证书;

              req – PKCS#10 certificate request and certificate generating utility,证书请求及生成工具;

  [root@localhost tmp]# man req

OpenSSL:实现创建私有 CA、签署证书请求详解

  ~]# openssl req  -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3655

                  /etc/pki/CA/cacert.pem:配置文件中第一的目录及文件名称 

  -new:生成新证书签署请求;

  -x509:生成自签格式证书,专用于创建私有 CA 时;

  -key:生成请求时用到的私有文件路径;

  -out:生成的请求文件路径;如果自签操作将直接生成签署过的证书;

  -days:证书的有效时长,单位是 day;

 注意:

1)-key /etc/pki/CA/private/cakey.pem指明的是私钥的位置,知识因为此处会自动抽取出私钥中的公钥

2)req只能发起签署请求,需要加 -x509 参数实现自己发出请求,自己签署。非自签无需增加此参数

OpenSSL:实现创建私有 CA、签署证书请求详解

[root@localhost tmp]#  openssl req  -new  -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3655

          ====================================填写证书请求相关信息=======================================

You are about to be asked to enter information that will be incorporatedinto 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) [XX]:      # 两个字符表示的国家代码,CN为中国

State or Province Name (full name) []:      # 省或洲的完整名称

Locality Name (eg, city) [Default City]:      # 所在位置的名称 ( 默认为城市)

Organization Name (eg, company) [Default Company Ltd]:    # 组织机构名称 ( 默认为公司)

Organizational Unit Name (eg, section) []:    # 组织机构单元名称 (eg. 部门)

Common Name (eg, your name or your server’s hostname) []:    # 持有者名或者所在服务器主机名 ( 即域名)

Email Address []:    # 管理员邮件地址,可以省略

        ================================================================================================

   

      3.为 CA 提供所需的目录及文件;

            ~]# mkdir  -pv  /etc/pki/CA/{certs,crl,newcerts}  #当不存在时需要创建签发证书、吊销证书、新证书目录

            ~]# touch  /etc/pki/CA/{serial,index.txt}  #创建证书序列号文件、证书索引文件

            ~]# echo  01 > /etc/pki/CA/serial          # 第一次创建的时候需要给予证书序列号

OpenSSL:实现创建私有 CA、签署证书请求详解

 

 

 

 

三、OpenSSL;服务申请证书签署实现 SSL 安全通信

    要用到证书进行安全通信的服务器,需要向 CA 请求签署证书;

    需要签署的服务无需和 CA 证书签署机构主机在同一台服务器上。

        此处以 httpd 服务为例进行演示,步骤如下:

演示环境:

httpd服务放置 172.16.249.210 主机 ( 此处为 rpm 包安装)

OpenSSL:实现创建私有 CA、签署证书请求详解

 CA私有签机构放置 172.16. 249.18 主机

OpenSSL:实现创建私有 CA、签署证书请求详解

 

      1.用到证书的 服务器 生成私钥;

            ~]# mkdir  /etc/httpd/ssl  

            ~]# cd  /etc/httpd/ssl

            ~]# (umask  077; openssl  genrsa -out  /etc/httpd/ssl/httpd.key  2048)  # 生成私钥

                  生成 httpd 服务的私钥创建时候无需在 /etc/pki/CA 创建,/etc/pki/CA目录仅在创建 CA 主机时候

OpenSSL:实现创建私有 CA、签署证书请求详解

 

      2.生成证书签署请求

            ~]# openssl  req  -new  -key  /etc/httpd/ssl/httpd.key  -out /etc/httpd/ssl/httpd.csr  -days  365

                    1) *.csr表示证书签署请求文件

                    2)要保证和签署机构 CA 签署机构信息一致

OpenSSL:实现创建私有 CA、签署证书请求详解

 

      3.将请求通过可靠方式发送给 CA 主机

              ~]# scp  /etc/httpd/ssl/httpd.csr  root@172.16.249.18:/tmp/

OpenSSL:实现创建私有 CA、签署证书请求详解

 

      4.在 CA 主机上签署证书

            ~]# openssl ca -in/tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365

                          *.crt:表示证书文件

                          -days :签署证书的有效期

 注意:此处需要自己去查看信息是否正确,并确定是否给予签署证书

OpenSSL:实现创建私有 CA、签署证书请求详解

 

      5.查看所签署的证书信息

              方法一:~]# cat  /etc/pki/CA/index.txt

OpenSSL:实现创建私有 CA、签署证书请求详解

                          V:表示已经签署的

                          01:表示证书序列号

                          /C=CN/ST=Beijing/O=… …  表示主题信息 ( 主题标示)

            方法二:查看证书中的信息 (CA 或者服务端均可)

            ~]# openssl  x509  -in /etc/pki/CA/certs/httpd.crt  -noout  -serial  -subject

                          -serial :序列号  -subject:主题信息

OpenSSL:实现创建私有 CA、签署证书请求详解

   

      6.CA 签署机构的 .crt 证书发送给服务器

          ~]#  scp  /etc/pki/CA/certs/httpd.crt  root@172.16.249.210:/etc/httpd/ssl

        注意:第一次进行主机间基于 sshscp操作会接收一个证书,Queue要你那认证

OpenSSL:实现创建私有 CA、签署证书请求详解

     

    7.删除服务器和 CA 主机上签署前的 *.csr 文件,确保安全

httpd主机:~]# rm  -rf  /etc/httpd/ssl/httpd.csr

CA主机:~]# rm  -rf  /tmp/httpd.csr

 

 

 

 

四、OpenSSL:私有 CA 证书签署机构 吊销证书

    1.客户端获取要吊销的证书的 serial(在使用证书的主机 执行)

~]# openssl  x509  -in /etc/pki/CA/certs/httpd.crt  -noout  -serial  -subject

OpenSSL:实现创建私有 CA、签署证书请求详解

   

    2.CA 主机吊销证书

        先根据客户提交的 serial 和 subject 信息,对比其与本机数据库 index.txt 中存储的是否一致;

        /etc/pki/CA/crets/* 下生成证书后,会在 /etc/pki/CA/newcrets/* 以对应证书命名为 SERIAL.pem 文件存放

OpenSSL:实现创建私有 CA、签署证书请求详解

     吊销

  # openssl  ca  -revoke  /etc/pki/CA/newcerts/SERIAL.pem  其中 SERIAL 要换成证书真正的序列号eg. 01.pem

OpenSSL:实现创建私有 CA、签署证书请求详解

   

    3.生成吊销证书的吊销编号(第一次吊销证书时执行)

# echo  01  > /etc/pki/CA/crlnumber

OpenSSL:实现创建私有 CA、签署证书请求详解

 

    4.更新证书吊销列表

# openssl  ca  -gencrl  -out  thisca.crl

OpenSSL:实现创建私有 CA、签署证书请求详解

 

    5.查看 crl 文件:

# openssl  crl  -in  /PATH/FROM/CRL_FILE.crl  -noout  -text

更多 OpenSSL 相关内容可以查看以下的有用链接

使用 OpenSSL 命令行构建 CA 及证书  http://www.linuxidc.com/Linux/2015-10/124682.htm

Ubuntu 安装 OpenSSL  http://www.linuxidc.com/Linux/2015-10/124001.htm

通过 OpenSSL 提供 FTP+SSL/TLS 认证功能,并实现安全数据传输 http://www.linuxidc.com/Linux/2013-05/84986.htm

Linux 下使用 OpenSSL 生成证书 http://www.linuxidc.com/Linux/2015-05/117034.htm

利用 OpenSSL 签署多域名证书 http://www.linuxidc.com/Linux/2014-10/108222.htm

在 OpenSSL 中添加自定义加密算法  http://www.linuxidc.com/Linux/2015-08/121749.htm

OpenSSL 的详细介绍:请点这里
OpenSSL 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-01/127612.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计6649字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7982545
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face 免费服务器 +Docker 快速部署 HertzBeat 监控平台 ...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定! 前言 作为 NAS 玩家,你是否总被这些...
星哥带你玩飞牛NAS-2:飞牛配置RAID磁盘阵列

星哥带你玩飞牛NAS-2:飞牛配置RAID磁盘阵列

星哥带你玩飞牛 NAS-2:飞牛配置 RAID 磁盘阵列 前言 大家好,我是星哥之前星哥写了《星哥带你玩飞牛 ...
240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

  240 元左右!五盘位 NAS 主机,7 代 U 硬解 4K 稳如狗,拓展性碾压同价位 在 NA...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地 大家好,我是星哥,今天教大家在飞牛 NA...
星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

  星哥带你玩飞牛 NAS-16:不再错过公众号更新,飞牛 NAS 搭建 RSS 对于经常关注多个微...
星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定! 前言 作为 NAS 玩家,你是否总被这些...
还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手! 前言 对于个人开发者、建站新手或是想搭建测试站点的从业者...
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...