本文内容是作者参考其他博文总结的知识点,具体参考的blog地址记不清楚了.看到的兄弟希望能告诉我,方便我加上去

使用openssl创建自己的CA,即root certificate

以下介绍如何担任自己的CA,也就是创建一个CA机构用于实验

一般情况下,Linux下安装好openssl后,系统会在/etc/ssl/目录下生成openssl.cnf文件(不同的操作系统可能位于不同的目录下).后面一些命令和文件存放需要使用这个配置文件

首先为根目录创建一些子目录,这些目录的命名遵照openssl.cnf的命名方式,同时还要在根目录下创建index.txt和serial文件用于追踪密钥和证书的记录.

mkdir  /home/michael/pki/CA

cd /home/michael/pki/CA

Mkdir certs crl newcerts private

Chmod 666 private

Touch index.txt

Echo 1000 >serial

以上的指令在我们的证书根目录下创建了四个新目录和两个追踪文档(在创建完新文件或目录后及时更改文件的权限是好习惯)

Private用于存放CA的私钥的,为防止随意更改,下面会对其设置密码

题外话:如果CA要用于小型生产或局域网环境,理想的情况下是在生成该目录中的CA私钥前断开网络连接,将生成的内容保存到不接入网络的存储介质,再后续使用时再接入网络

下面使用命令行创建CA私钥,保存在private/ca.key.pem文件中.使用AES-256算法对其进行加密.

Openssl genrsa -aes 256 -out /home/michael/pki/CA/private/ca.key.pem 4096

Enter pass phrase for ca.key.pem:

Verifying -Enter pass phrase for ca.key.pem:

Chmod  400 /home/michael/pki/CA/private/ca.key.pem

公钥证书创建,公钥证书创建时先对其进行配置

cd /home/michael/pki/CA

cp /etc/ssl/openssl.cnf  root_CA.cnf

Vim root_CA.cnf

改掉以下的文件设置:

[CA_default]

dir=/home/michael/pki/CA

Certs=$dir/certs

Private=$dir/private

Certificate=$certs/ca.cert.pem

Private_key=$private/ca.key.pem

下面使用openssl的命令req生成公钥证书

Cd /home/michael/pki/CA

Openssl req -new -x509 -days 3650 -key private/ca.key.pem \

-sha256 -extensions v3_ca -out certs/ca.cert.pem -config root_CA.cnf

(就是不知道以上的参数选项是否有先后顺序??????????)

该命令执行后,首先会需要我们输入使用私钥的密码,然后声明一些证书信息

以上完成后,生成的公钥证书ca.cert.pem就导入到certs/目录下了.这样我们就创建了一个CA,(有个问题CA不需要自己给自己进行自签名吗??).接下来我们可以直接使用这个CA私钥和证书   签名和颁发客户证书.也可以使用根私钥和公钥证书创建中间认证机构,所谓中间认证机构是CA机构的代理,能够代表我们刚创建的CA签发client证书.创建中间证书的有点在于我们不使用CA根私钥而是使用中间CA私钥来sign client certs .CA根私钥只用来签发中间的CA证书的撤销列表,则更妥善地保护了根私钥.(这里引出证书链的概念)

接着我们介绍如何创建中间CA,步骤大体与sign client cert相似.

为便于区分,明确两个概念:

中间CA(intermediate CA)和根CA(root CA)

上文我们已经创建了根CA,与前文保持一致,假定证书根目录不变,在/home/michael/pki/CA下创建intermediate

初始化证书目录的过程与创建root CA一致.

mkdir  /home/michael/pki/CA/intermediate

cd /home/michael/pki/CA/intermediate

Mkdir certs crl newcerts private

Chmod 666 private

Touch index.txt

Echo 1000 >serial

创建中间CA私钥,采用AES256算法加密

Cd /home/michael/pki/CA

Openssl genrsa -aes 256 -out intermediate/private/intermediate.key.pem 4096

Enter pass phrase for ca.key.pem:

Verifying -Enter pass phrase for ca.key.pem:

Chmod  400 \ /home/michael/pki/CA/intermediate/private/intermediate.key.pem

中间CA(包括其他client)要向root CA申请公钥证书,就要首先产生一个CSR(certificate signing request证书签名请求)格式的请求文件,将其发送给根CA后等待CA审查

这里仍然需要将创建root CA用的配置文件拷贝到中间CA证书目录下,该配置文件在生成CSR文件和以后签发client文件时都要用到

Cp /home/michael/pki/CA/root_CA.cnf  /home/michael/pki/CA \ /intermediate/intermediate_CA.cnf

Cd /home/michael/pki/CA/intermediate

Vim intermediate_CA.cnf

[CA_default]

dir=/home/michael/pki/CA/intermediate

Certs=$dir/certs

Private=$dir/private

Certificate=$certs/intermediate.cert.pem

Private_key=$private/intermediate.key.pem

今后我们使用中间CA证书签署新的证书时,以”-config \ /home/michael/pki/CA/intermediate/intermediate_CA.cnf”的形式告诉openssl中间CAde 信息.一般intermediate_CA.cnf的默认申请的有效期是365 days,如果想要修改,可以在配置文件中修改”default_days”字段

接下来我们生成CSR文件

Cd /home/michael/pki/CA/intermediate

Openssl req -config intermediate_CA.cnf -sha256 -new -key  \ private/intermediate.key.pem -out certs/intermediate.csr.pem

(之前申请公钥也是用的req命令哦!!!)

注意:接下来会要求输入使用私钥的密码,在设置中间CA的身份信息时,一定要注意

“Organization Name”一项一定要与root CA的设置一致.(其实很多项都要一致,我实验过了)否则谁知道你是CA的代理啊

接下来我们就要用root的私钥进行签署中间证书的请求文件,同样需要输入root 私钥的密码.使用的命令是openssl里的ca

Cd /home/michael/pki/CA

Openssl ca -config root_CA.cnf -extensions v3_ca -notext   \
-md sha256 -in intermediate/certs/intermediate.csr.pem  \

-out intermediate/certs/intermediate.cert.pem

正确的结果如下:

Using configuration from root_CA.cnf

Enter pass phrase for /home/michael/pki/CA/private/ca.key.pem

Check that the request matches the signature

Signature ok

Certificate Details:

...

Sign the certificate ? [y/n]:y

1 out of 1 certificate request certificate,commit ? [y/n]:y

Write out database with 1 new entries

Data Base Updated

Chmod 444 intermediate/certs/intermediate.cert.pem

到这里我们生成了中间CA的公钥证书,可以使用下面的命令检查证书的真实性:

Openssl verify -CAfile /home/michael/pki/CA/certs/ca.key.pem \

/home/michael/pki/CA/intermediate/certs/intermediate.cert.pem

显示ok则表示签署中间CA证书成功了

对于中间CA是根CA的代理,以后要能签署其他client的证书申请,则必须把完整的证书链提供给openssl

所以,下面还要生成完整的证书链,才算完成

Cd /home/michael/pki/CA

Cat intermediate/certs/intermediate.cert.pem certs/ca.cert.pem > \ intermediate/certs/ca-chain.cert.pem

所以以后就可以使用公钥ca-chain.cert.pem来签署其他client文件

从这次的学习中额外收获以下知识点:

如何改变一个目录或文件的权限

Chmod 444 文件名

改变宿主

Chown 宿主名 文件

暂时取得root权限

Su

查看文件的权限

ls -al

查看文件内容

Cat 文件名  .......................................

复制文件内容到指定文件中

Cp 源文件 目标文件

删除文件夹及文件夹下所有内容

rm -rf 文件夹

不同服务器之间传递文件:

Scp 源文件路径 root@172.19.2.75:目标文件的路径

如何使用openssl创建根CA和中间CA以及签署其他client证书请求相关推荐

  1. Linux 创建一个简单的私有CA、发证、吊销证书

    操作环境:Centos 6.RHEL 6 操作虚拟机:VMware 本实验基于OpenSSL实现,SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供 ...

  2. 转载:Openssl生成rsa和椭圆曲线加密公钥密钥创建根ca签名https服务器证书签名...

    转载:Openssl生成rsa和椭圆曲线加密公钥密钥创建根ca签名https服务器证书签名 Openssl生成rsa和椭圆曲线加密公钥密钥创建根ca签名https服务器证书签名 July 20, 20 ...

  3. Windows下OpenSSL创建CA证书以及客户端和服务器端证书

    打开命令行工具,转到安装目录bin文件夹, $ mkdir -p ./demoCA/{private,newcerts} $ touch ./demoCA/index.txt $ echo 01 &g ...

  4. openssl创建CA并签发证书

    一.创建私有CA根证书 1.创建CA目录 root@DESKTOP-JP3S3AN:/home/wsl/openssl_pro# mkdir -pv /etc/pki/CA/{private,cert ...

  5. http系列---OpenSSL生成根证书CA及签发子证书

    文章目录 1. 前言 2. 修改OpenSSL的配置 3. 生成根证书 4. 用根证书签发server端证书 5. 用根证书签发client端证书 6. 导出证书 7. 附项目证书目录 1. 前言 系 ...

  6. OpenSSL生成根证书CA及签发子证书

    转自:https://yq.aliyun.com/articles/40398 摘要: 系统:CentOS7 32位 目标:使用OpenSSL生成一个CA根证书,并用这个根证书颁发两个子证书serve ...

  7. openssl 创建私有CA

    创建私有CA: openssl的配置文件:/etc/pki/tls/openssl.cnf 1.创建所需要的文件 #touch index.txt #echo 01 > serial # 2.给 ...

  8. openssl创建CA、申请证书及其给web服务颁发证书

    一.创建私有的CA   1)查看openssl的配置文件:/etc/pki/tls/openssl.cnf   2)创建所需的文件 touch /etc/pki/CA/index.txt   echo ...

  9. 在企业内部使用openssl创建私有CA

    随着计算机技术的发展,信息网络技术的应用日益深入,这些应用改进了企业工作方式,提高了工作效率.而如何确保在网络中传输的身份认证.机密性.完整性.合法性.不可抵赖性等问题成为企业进一步发展和推动企业信息 ...

  10. openssl创建私有ca

    openssl创建私有ca 1.ssl大概内容 PKI:公钥基础设施结构 CA:证书权威机构,PKI的核心 CRL:证书吊销列表,使用证书之前需要检测证书有效性 证书存储格式常见的X509格式 包含内 ...

最新文章

  1. ecshop商品详情相册顺序调整
  2. 王峰记忆法 解密王峰记忆法之迷
  3. CC2540、nRF51822应用开发比较
  4. 【渝粤教育】 广东开放大学21秋期末考试管理学基础10241k2
  5. 漫谈MySQL权限安全,跳槽薪资翻倍
  6. Linux学习笔记004----CentOS7 提升普通用户权限到Root权限
  7. 从谷歌浏览器复制不带样式_文字特效游戏海报特效字体photoshop字体图层样式
  8. 怎么用U盘重装系统?
  9. Linux进程状态(ps stat)之R、S、D、T、Z、X 转:http://blog.csdn.net/huzia/article/details/18946491...
  10. word文档总让正文与目录分开在不同的页——分页符的使用
  11. 《Excel图表之道》——书和人
  12. 谈谈程序员的绩效考核
  13. Python : 批量替换代码文件内容,批量移动/覆盖文件
  14. 「首席架构师推荐」数值分析软件列表
  15. 删除在计算机的没用东西,怎么删除电脑中没用的东西?
  16. 【bzoj4372】 烁烁的游戏【动态树分治】
  17. 【Buzz】离线语音转文字、实时语音识别
  18. Nvidia Xavier Nx平台GMSL接口imx390相机驱动调试记录
  19. OCA/OCP(Oracle Certified Associate/Profesional)
  20. 20-观察者模式Quarkus实现

热门文章

  1. 微信开发者工具最新版本无法上传腾讯云代码(找不到腾讯云图标)
  2. 【随笔】第一批走进大学的“00后”群体——纪念2015级西安交大少年班
  3. Android ViewPager 循环轮播
  4. 06-jQuery属性操作
  5. Tensorflow项目中--FLAGS=tf.flags.FLAGS
  6. Win8快速开关机的奥妙:假关机还是真休眠?
  7. 【个人管理】Nicholas C. Zakas:我得到的最佳职业生涯建议
  8. 2019年CSDN博客排名前10名
  9. ds5100更换电池 ibm_IBMDS5100更换电池
  10. Lonlife 1016 Change of Life