14 Linux之openssl工具创建私有CA

  • 证书的创建依赖加密算法,请看http://yunweigou.blog.51cto.com/6299641/1637108

  • 前言,随着网络的发展,由于使用http协议通信的双方数据是明码格式的,故容易被其他网络主机盗取或偷换数据,无法对数据的安全提供保障。为保证数据的保密性及完整性,SSL问世
  • SSL:Secure Sockets Layer 安全套接字层
    • 可理解为传输层和应用层之间的半层,对数据进行加密和解密
    • 是Web浏览器与Web服务器之间安全交换信息的协议,提供两个基本的安全服务:鉴别与保密。
    • 更多详细信息,请查看http://fr.wikipedia.org/wiki/SSL
  • OPENSSL:开源界SSL

    • libcrypto# 加密、解密所使用的库文件
      libssl#ssl协议的一种实现
      openssl#多用途命令行工具,每种功能都能使用专用的子命令完成
    • Standard commands #标准命令
    • asn1parse         ca                ciphers           cms
    • crl               crl2pkcs7         dgst              dh
    • dhparam           dsa               dsaparam          ec
    • ecparam           enc               engine            errstr
    • gendh             gendsa            genpkey           genrsa
    • nseq              ocsp              passwd            pkcs12
    • pkcs7             pkcs8             pkey              pkeyparam
    • pkeyutl           prime             rand              req
    • rsa               rsautl            s_client          s_server
    • s_time            sess_id           smime             speed
    • spkac             ts                verify            version
    • x509
    • Message Digest commands (see the `dgst‘ command for more details)#消息摘要命令:单向加密算法
    • md2               md4               md5               rmd160
    • sha               sha1
    • Cipher commands (see the `enc‘ command for more details) #加密解密相关的命令
    • aes-128-cbc       aes-128-ecb       aes-192-cbc       aes-192-ecb
    • aes-256-cbc       aes-256-ecb       base64            bf
    • bf-cbc            bf-cfb            bf-ecb            bf-ofb
    • camellia-128-cbc  camellia-128-ecb  camellia-192-cbc  camellia-192-ecb
    • camellia-256-cbc  camellia-256-ecb  cast              cast-cbc
    • cast5-cbc         cast5-cfb         cast5-ecb         cast5-ofb
    • des               des-cbc           des-cfb           des-ecb
    • des-ede           des-ede-cbc       des-ede-cfb       des-ede-ofb
    • des-ede3          des-ede3-cbc      des-ede3-cfb      des-ede3-ofb
    • des-ofb           des3              desx              idea
    • idea-cbc          idea-cfb          idea-ecb          idea-ofb
    • rc2               rc2-40-cbc        rc2-64-cbc        rc2-cbc
    • rc2-cfb           rc2-ecb           rc2-ofb           rc4
    • rc4-40            seed              seed-cbc          seed-cfb
    • seed-ecb          seed-ofb          zlib
    • 组成部分:
    • [[email protected] pki]# tree CA
      CA
      ├── certs    证书文件存放的位置
      ├── crl      证书吊销列表存放的位置
      ├── newcerts 新创建的证书的存放位置
      └── private  CA私钥存放
    • 生成私钥:
    • 括号不可省略,相当于打开子shell进程运行的
    • # openssl genrsa -out testkey 2048
    • 私钥一般只为自己可读可写须改其权限
    • # chmod 600 testkey
    • 可改为:
    • # (umask 077;openssl genrsa -out testkey 2048)
    • openssl enc -e -des3 -a -salt -in fstab -out fstab.des3 #对文件加密(对称加密)
      openssl enc -d -des3 -a -salt -in fstab.des3 -out fstab.new #对文件解密(加解密同一密钥)
    • 例如:
    • 生成密钥对儿操作过程:
    • 证书目录:/etc/pki/CA

使用openssl创建私有CA:

  • 生成私钥

    • 私钥用于签发证书时,向证书添加数字签名使用

发起证书签署请求并自签证书

  • 每个通信方都导入此证书至“受信任的证书颁发机构”

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

-key:私钥文件路径,用于提取公钥

-days #:证书有效期,单位为天

-out:输出文件(证书)保存位置

-x509:直接输出自签署的证书,通常只有构建CA时用

至此CA构建完成。各通信方就可向该CA请求证书了

更多详情参考/etc/pki/tls/openssl.conf文件(须新建辅助文件,如下步骤)

提供必要的辅助文件

  • 向节点发证书

    • 验证请求者信息
    • 直接签署证书
    • 生成私钥:
    • 生成证书签署请求

    • 把请求crt文件通过某方式发送给CA
    • 节点发起证书申请
    • CA签发证书

注:这里给大家示范错误例子,签名没问题,问题在于请求者与被请求者区域不一致

从生成证书签署请求那里错误就开始了,正确如下

至此,证书签署完毕!看着界面好舒服,有没有~
将会看到辅助文件的变化,如下:

  • 将签署好的证书发还给请求者
  • 证书的吊销:
    • 获得吊销证书的序列号
    • 实现证书的吊销
    • openssl crl -gencrl -out THISCA.crl
    • openssl x509 -in /etc/httpd/ssl/httpd.crt -noout -serial -subject
    • openssl ca -revoke /etc/httpd/ssl/httpd.crt
    • echo 01 > /etc/pki/CA/crlnum
    • 更新证书吊销列表
    • 吊销证书
    • 生成吊销证书的编号

至此完毕。

时间: 2024-10-26 21:21:32

14 Linux之openssl工具创建私有CA的相关文章

基于ssl协议和openssl工具建立私有CA

前言 要自建CA需先了解openssl工具和ssl协议还有各加密类型 ssl(Secure Socket Layer)安全套接字层当前版本为3.0,浏览器与Web服务器之间的身份认证和加密数据传输,它工作在传输层和各应用层之间,用户可以选择是否使用ssl进行传输,选择ssl协议将调用ssl函数库,端口也会发生变化. 加密类型 对称加密:任意加密数据块和流的内容,加密和解密用同一个密码, 通常明文通过算法和密钥生成密文,再由接受者用相同的密钥和算法解密获取明文. 算法:(DES.3DES.AES现

网络通信中的加密解密及openssl和创建私有CA详解

1.为什么网络通信要进行数据加密? 我们在网络进行通信时候,如果数据以明文的方式传输,在传输过程中,数据可以被篡改.窃听.伪装等,如图: 当A向B通信时,C可以在数据传输的过程,将数据进行抓包,例如应用wireshark抓包软件,就可以抓取通信的数据包,进行对抓到的内容进行分析,得出传输数据的内容. 2.数据加密方式有哪些? 从分类上划分,加密技术有四种: 1)对称加密 ◆ 对称加密:加密和解密使用同一个密钥 ·DES:Data Encryption Standard,56bits ·3DES:

ssl协议、openssl及创建私有CA

在互联网发展早期,NetSpace公司发明了第一个浏览器及Web服务器.而http协议传输数据是明文的,为了基于加密的机制实现http,NetSpace公司在TCP层和应用层之间引入了半个层,这半层就是SSL.SSL不是一个软件,可以将它理解为一个库.当应用层的某种协议如果传输数据之前调用了SSL的功能,那么这个协议就实现了加密的功能.例如:http协议本身是不加密的,数据在应用层封装完之后本来应该交给传输层,但由于NetSpace在TCP层和应用层之间加入了SSL层,而SSL本身就是实现数据通

使用OpenSSL创建私有CA、签署证书

OpenSSL工具包是Linux上SSL v2/v3和TLS v1协议的实现方式之一,并建提供了常用的加密解密功能. OpenSSL主要由三部分组成: 1:libcrypto:加密库,主要用来实现加密.解密的功能库 2:libssl:实现SSL服务器端功能会话库 3:openssl命令行工具:/usr/bin/openssl 本文仅是介绍如何通过openssl命令创建私有CA,以及如何申请证书.签署证书等过程. 证书主要包含的就是拥有者自身的属性信息.公钥以及CA的签名,核心就是用户的公钥.服务

加密解密技术基础、PKI及创建私有CA

加密解密技术基础.PKI及创建私有CA 一.背景 随着互联网的快速发展,整个互联网中涌入了大量的用户,正所谓林子大了什么鸟都有,随之而来的就是数据的安全性得不到保障:因此就有了对数据的加密及解密. 二.安全的目标 1.目标: 信息加密的目的是为了确保所传输的信息具有保密性,不被其他人所劫持后篡改信息:如果被篡改后接收方也应该能知道,而且也应该确保没被劫持的信息接收方可以读取. 2.数据在网络中传输过程中要保证三个要点: (1)数据的完整性:防止数据在传输过程中遭到未授权用户的破坏或篡改. (2)

openssl工具的使用以及创建私有CA

openssl软件包在安装之后,主要会生成三段重要内容:加密库 ssl相关库文件 openssl命令行工具 下面就来介绍一下openssl命令行工具的使用: openssl和yum类似,有着许许多多的子命令: 如果要获得这些子命令的相关man文档,先使用whatis查看一下确定使用man的格式语法 其中常用的子命令有: 1.enc:实现对称加密,解密的命令 使用格式:openssl enc ciphername -a [-e] [-salt] -in filename -out filename

OpenSSH的应用和利用OpenSSL创建私有CA签证给httpd服务器开https

https http over ssl = https 443/tcp                ssl: v3                tls: v1 https:// SSL会话的简化过程                (1) 客户端发送可供选择的加密方式,并向服务器请求证书:                (2) 服务器端发送证书以及选定的加密方式给客户端:                (3) 客户端取得证书并进行证书验正:                    如果信任给其发

OpenSSH的应用和利用OpenSSL创建私有CA签证给httpd服务器开起https

一.OpenSSH OpenSSH与SSH协议是远程登录的首选连接工具.它加密所有流量,以消除窃听,连接劫持和其它攻击.OpenSSH常常被误认以为与OpenSSL有关系,但实际上这两个项目的有不同的目的,不同的发展团队,名称相近只是因为两者有同样的软件发展目标──提供开放源代码的加密通讯软件. OpenSSH的套件包括以下工具: 远程操作使用 SSH, SCP,和 SFTP. 密钥管理 ssh-add, ssh-keysign, ssh-keyscan和ssh-keygen 服务端组成 ssh

openssh及openssl创建私有CA

ssh:secure shell,protocol ,监听TCP22,提供安全的远程登陆服务 OpenSSH:ssh协议的开源实现 dropbear:另一个开源实现 SSH协议版本: V1:基于CRC-32做MAC(消息认证码),不安全:容易受man-in-middle攻击 v2:双方主机协议选择安全的MAC方式 基于DH算法做秘钥交换,基于RSA或DSA算法实现身份认证 两种方式的用户登录认证: 口令:基于Passwd 基于KEY OpenSSH: C/S C:ssh,scp,sftp win