资讯详情

安全和加密CA证书

一、介绍

为什么要加密?

※ 不加密流量易受攻击 ● 密码/数据嗅探 ● 数据操作 ●验证操作 ●相当于邮寄明信片 ※ 传统协议不安全--明文 ●telnet、FTP、POP等等;不安全密码 ●http.smtp、NFS等等;不安全信息 ●Ldap、NIS,rsh等等;无案舍验证

2、安全机制

※ NIST(国家标准与技术研究院)定义的安全属性: ?保密性: ● 数据保密性 ● 隐私性 ?完整性:不能篡改 ● 数据完整性 ● 系统完整性 ?可用性 ※ 安全攻击:STRIDE Spoofing (假(假主机)Tampering (篡改,数据篡改),Repudiation (否认(不承认做了什么),Inforration Disclosure (信息泄露),Denial of Service (拒绝服务(ping -f同样形式的大量数据包,占用大量带宽,cpu)和Elevation of Privilege (提升权限(向管理员提升普通用户权限)

解释:什么是ping -f 在数据包中发送不分段标志。 你通常发送的数字zhi据包将通过路由分段发送给对方,加上此参数后路由将不再分段处理。 可以理解为 -f极限检测,快速连续ping一台主机,ping每秒100次;

3、安全

※ 安全机制: ?加密(明文加密)、数字签名(如信用卡交易签名,计算机说明是您操作的)、访问控制(acl 控制权限,限制用户访问)、数据完整性(数据不篡改)、认证交换(双方认证)、流量填充(流量故意填充随机数量,确保安全数据隐藏)、路由控制(互联网安全稳定,公证(结婚公证) ※ 心理安全服务: ?认证 ?访问控制 ?数据保密性 ● 连接保密性 TCP/UDP ● 无连接保密性 ● 选择域保密性 挑选域 ● 流量保密性 有些企业的流量也很重要 ?数据完整性 ?不可否认性

4.设计基本原则

※ 使用成熟的安全系统 ※ 以小人的心态输入数据 ※ 外部系统不安全 ※ 最小授权 企业内部授权,最小权限 ※ 减少外部接口 ※ 缺乏使用安全模式 selinux 默认启用 ※ 安全不是似是而非 ※ 从STRIDE思考 STRIDE:假冒、篡改、抵制、信息泄露、拒绝服务、提高特权 ※ 检查入口 ※ 从管理上保护好你的系统 ※防水墙 企业内部设置可以监控企业内部设置IT行为 如果是否插入U盘,复制文件

二、 安全加密:

1、安全算法

※常用的安全技术 ?认证 ?授权 ?安全通信 ?审计 ※密码算法与协议: ?对称加密 ?公钥加密 ?单向加密 ?认证协议 ※Linux系统: OpenSSL,gpg (pgp协议的实现)

※使用相同的密钥进行加密和解密,如: ?DES: Data Ercryption Standard,56bits数据加密标准 ?3DES:3倍强度 ?AES: Advanced (128,192,256bits)可级加密算法可选择加密长度 ?Blowfish,Twofish商业 ?IDEA,RC6,CAST5 ※ 例子:A 发送数据data→使用key加密→加密的data→使用key解密→B接受数据data 其中key是相同的key称为对称加密 ※ 特性: 1.加密和解密使用相同的密钥,效率高 2.将原始数据分成面定大块,逐一加密 ※ 缺陷: 1、密钥过多A用一个跟B,A有的和C换一个 2、密钥分发如何将密钥传递给对方? 3.数据源无法确认B解密后的数据无法确认A是否传输。

加密key 跟 解密key 不相等 &nbp;  ※ 公钥加密:密钥是成对出现          ➢公钥:公开给所有人; public key          ➢私钥:自己留存,必须保证其私密性; secret key     ※ 特点:用公钥加密数据,只能使用与之配对的私钥解密;反之亦然     ※ 功能:          ➢数字签名:主要在于让接收方确认发送方身份          ➢对称密钥交换:发送方用对方的公钥加密一个对称密钥后发送给对方          ➢数据加密:适合加密较小数据育     ※ 缺点:密钥长,效率低     ※ 算法:          ➢RSA(加密,数字签名),DSA(数字签名),ELGamal

原理:通信的双方都各自有一对钥匙,也就是有4把钥匙 A :phblic(P(a)) private(S(a))     B:phblic (P(b))     private (S(b)) 公钥就是可以随便给,私钥只能留给自己。私钥解对应的公钥,公钥解对应的私钥。私钥不能解私钥,公钥不能解公钥需求:对称加密不知道是谁给你发送的数据,非对称加密如何实现 A的私钥加密,由于任何机器(B机器)有A的公钥,B机器拿A的公钥解密了,说明是A发送的数据,此过程为数字签名缺点:  DES :加密前1G,加密后2G,加密时间4m,解密8m RSA: 加密前1G,加密后1G,加密时间1m,解密64hour需求:数据安全,确认数据隐私,也就是来源 Pb {Sa(data)}   两次加密,确保了数据从A发送后,只能在B解密,确保了数据安全,而B能拿A公钥公钥解密,确保来源 缺点: 代价太大。时间效率

-rw-r-----. 1 root ssh_keys   1675 9月   8 10:28 ssh_host_rsa_key     私钥只有root跟特定的组,读取 -rw-r--r--. 1 root root        382 9月   8 10:28 ssh_host_rsa_key.pub    

 

  ※ 将任意数据缩小成固定大小的“指纹”          ➢任意长度输入          ➢固定长度输出          ➢若修改数据,指纹也会改变(“不会产生冲突”)          ➢无法从指纹中重新生成数据(“单向”)     ※ 必功能:数据完整性     ※ 常见算式          ➢md5: 128bits、 shal; 160bits、sha224          ➢sha256、sha384、sha512     ※ 常用工具www.magedu.com          ➢md5sum | sha1sum [ --check ] file          ➢openssl、9P9          ➢rpm -V

web缓存常用md5、Linux(sha1sum 160bit )当我用hash算法给数据做过处理后,结果叫digset (摘要)1、任何的数据,不管多大,得出的摘要长度一致。 如md5加密后的数据,都是128bit 字符串,2、数据不同,摘要数值不同  3  hash算法不可逆,得到摘要,推不出原来是什么

[root@hdss7-11 ssh]# sha1sum /dev/sda 90635d6665a1641002e3ee1c42982cb326b720d9  /dev/sda

优化:Pb {Sa(data)}    代价太大。时间效率,配置hash Pb {data +Sa(hash(data))}    得到的结果:实现只有B才能解密,得到 {data +hash(Sa(data))} ,确保了安全。 然后得到了数据data,通过用Pa 解密得到(hash(data),确保来源,并且B通过hash+data 跟(hash(data)确保数据没有坏优化:对称+非对称+hash key{data +Sa(hash (data))} +Pb(key)   得到的结果:实现数据可以传给任何人,在只有B拿到数据,才能解密Pb(key)得到 key ,才能实现对称加密的key{data +Sa(hash (data))} 解密。得到data +Sa(hash (data)),也就得到了数据data,通过用Pa 解密得到hash (data),确保来源,并且B通过hash+data 跟(hash(data)确保数据没有坏hash算法工具介绍: [root@hdss7-11 ssh]# sha sha1sum    sha224sum  sha256sum  sha384sum  sha512sum   [root@hdss7-11 ~]# vi f1 1111 [root@hdss7-11 ~]# sha512sum f1  5d685b8ed7ea3abe9903d630c8448e5823cb80f923c9c56f60faa49a14e9159027a4af2f38d9556dfca82f5271098fe463bf9e31b30cf6c9eb6879f139e3db06  f1 [root@hdss7-11 ~]# sha512sum f1 >f1.sha512 [root@hdss7-11 ~]# vi f1 1111222 [root@hdss7-11 ~]# sha512sum --check f1.sha512  f1: 失败 sha512sum: 警告:1 个校验和不匹配 [root@hdss7-11 ~]# sha512sum host.com.zone >> f1.sha512  [root@hdss7-11 ~]# sha512sum od.com.zone >> f1.sha512  [root@hdss7-11 ~]# sha512sum --check f1.sha512  f1: 失败 host.com.zone: 确定 od.com.zone: 确定 sha512sum: 警告:1 个校验和不匹配

检查某个包里面的文件是否发生变化,在rpm 安装后,系统自动把这种文件的各种属性,权限等 hash,存储数据库中,rpm -V 会查到

主要解决对称加密key如何实现传递,对称秘钥进场更换     ※密钥交换          ➢公钥加密:             DH (Deffie-Hellman):生成会话密钥,参看:https://en. wikipedia. org/wiki/Diffie%E2%80%93HelIman_ key_ exchange     ※DH:          ➢1、A: a,p协商生成公开的整数a,大素数p                    B: a,p          ➢2、A:生成隐私数据: x(x<p),计算得出a^x%p,发送给B                   B:生成隐私数据:y 计算得出a ^y%p,发送给A          ➢3、A:计算得出[(a^ y%p)^x] %p = a^ xy%p,生成为密钥                   B:计算得出[(a^ x%p)^y] %p = a ^xy%p,生成为密钥

  原理:A机器随机生成a(整数),p(素数:只能被自己或者1 整除)。发送给B机器,然后         A:随机生成一个隐私数据x,计算 a^x%p,发送给B         B:随机生成一个隐私数据y,计算得出a ^y%p,发送给A         A:计算得出[(a^ y%p)^x] %p = a^ xy%p,生成为密钥         B:计算得出[(a^ x%p)^y] %p = a ^xy%p,生成为密钥            发现数值相同   a=2, p=11 ,x=3      A:a^x%p =8   a=2, p=11 ,y=4     B:a ^y%p=5   A:  5   [(a^ y%p)^x] %p = a^ xy%p   B:  8   [(a^ x%p)^y] %p = a ^xy%p

[root@hdss7-11 ~]# gpg -c f1   对文件加密 [root@hdss7-11 ~]# ll -rw-r--r--  1 root root   13 9月  25 19:08 f1 -rw-r--r--  1 root root   54 9月  25 19:36 f1.gpg [root@hdss7-11 ~]# cat f1.gpg  °񻇪v؉%{ +I²¢󤮼G              Ϗ¥邨oˑQH8¶(M

[root@hdss7-11 ~]# gpg -o f11 -d f1.gpg   解密 [root@hdss7-11 ~]# ll -rw-r--r--  1 root root   13 9月  25 19:37 f11 -rw-r--r--  1 root root   54 9月  25 19:36 f1.gpg

    ※在hostB主机上用公钥加密,在hostA主机.上解密   ※在hostA主机上生成公钥/私钥对          ➢gpg --gen-key   ※在hostA主机上查看公钥          ➢gpg --list-keys   ※在hostA主机上导出公钥wang. pubkey          ➢gpg -a --export -0 wang. pubkey       a不可读   ※从hostA主机上复制公钥文件到需加密的B主机上          ➢scp wang.pubkey~ hostB; [root@hdss7-11 .gnupg]# gpg --gen-key gpg (GnuPG) 2.0.22; Copyright (C) 2013 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

gpg: 已创建目录‘/root/.gnupg’ gpg: 新的配置文件‘/root/.gnupg/gpg.conf’已建立 gpg: 警告:在‘/root/.gnupg/gpg.conf’里的选项于此次运行期间未被使用 gpg: 钥匙环‘/root/.gnupg/secring.gpg’已建立 gpg: 钥匙环‘/root/.gnupg/pubring.gpg’已建立 请选择您要使用的密钥种类:    (1) RSA and RSA (default)    (2) DSA and Elgamal    (3) DSA (仅用于签名)    (4) RSA (仅用于签名) 您的选择? 1 RSA 密钥长度应在 1024 位与 4096 位之间。 您想要用多大的密钥尺寸?(2048)1024 您所要求的密钥尺寸是 1024 位 请设定这把密钥的有效期限。          0 = 密钥永不过期       <n>  = 密钥在 n 天后过期       <n>w = 密钥在 n 周后过期       <n>m = 密钥在 n 月后过期       <n>y = 密钥在 n 年后过期 密钥的有效期限是?(0) 0 密钥永远不会过期 以上正确吗?(y/n)y

You need a user ID to identify your key; the software constructs the user ID from the Real Name, Comment and Email Address in this form:     "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"

真实姓名:Jerr 姓名至少要有五个字符长 真实姓名:jerry 电子邮件地址: 注释: 您选定了这个用户标识:     “jerry”

更改姓名(N)、注释(C)、电子邮件地址(E)或确定(O)/退出(Q)?O 您需要一个密码来保护您的私钥。

我们需要生成大量的随机字节。这个时候您可以多做些琐事(像是敲打键盘、移动 鼠标、读写硬盘之类的),这会让随机数字发生器有更好的机会获得足够的熵数。

[root@hdss7-11 .gnupg]# cd /root/.gnupg/ [root@hdss7-11 .gnupg]# ll -rw------- 1 root root 7680 9月  25 20:07 gpg.conf drwx------ 2 root root    6 9月  25 20:09 private-keys-v1.d -rw------- 1 root root  661 9月  25 20:23 pubring.gpg    公钥 -rw------- 1 root root  661 9月  25 20:23 pubring.gpg~ -rw------- 1 root root  600 9月  25 20:23 random_seed -rw------- 1 root root 1325 9月  25 20:23 secring.gpg    私钥 srwxr-xr-x 1 root root    0 9月  25 20:23 S.gpg-agent -rw------- 1 root root 1280 9月  25 20:23 trustdb.gpg  

[root@hdss7-11 .gnupg]# gpg --list-keys /root/.gnupg/pubring.gpg ------------------------ pub   1024R/2C31F4D2 2020-09-25 [有效至:2020-09-28] uid                  jerry sub   1024R/A1B32077 2020-09-25 [有效至:2020-09-28]

[root@hdss7-11 .gnupg]# gpg -a --export -o wang.pubkey [root@hdss7-11 .gnupg]# ll -rw------- 1 root root 7680 9月  25 20:07 gpg.conf drwx------ 2 root root    6 9月  25 20:09 private-keys-v1.d -rw------- 1 root root  661 9月  25 20:23 pubring.gpg -rw------- 1 root root  661 9月  25 20:23 pubring.gpg~ -rw------- 1 root root  600 9月  25 20:23 random_seed -rw------- 1 root root 1325 9月  25 20:23 secring.gpg srwxr-xr-x 1 root root    0 9月  25 20:23 S.gpg-agent -rw------- 1 root root 1280 9月  25 20:23 trustdb.gpg -rw-r--r-- 1 root root 1000 9月  25 20:27 wang.pubkey [root@hdss7-11 .gnupg]# cat wang.pubkey  -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2.0.22 (GNU/Linux)

mI0EX23hJwEEAOzxCR2keHy3Rgofi5TD6CgMX5hzdQJbA0CBtSq0R57gSzga6g3C qenbJW/nAUJID78sV+L5jUieyZsfzkavIm8xV1xWk0bM9Trb2SNkDI9x90gDKkIx pGTDFeK6ZQYRCU12FG5rIv4Lvt1rlqQMbPvNbkbi7lAQQPxUMck1r5gDABEBAAG0 BWplcnJ5iL8EEwECACkFAl9t4ScCGwMFCQAD9IAHCwkIBwMCAQYVCAIJCgsEFgID AQIeAQIXgAAKCRBIJyyuLDH00tkjBADFPB7T3iCrqpjlNwh6TnulF8bYTYRHCOIF QumGjc0jMAu7O3/x7nyBNsw4hYo/lonyCIijTZfa5o9KdGNxHd4fCaSwDGxvVLOS J2Qc9m7Rqp/LbltxP7PgntYtrjJ9H36NKhyxUzU7P2iaMoyVgcA6CZVB/H6igpqe j9LtqTPOnriNBF9t4ScBBADsf+fASDLF6EdktTHhZ5jPgrMpI53egGMOv/PshLmY E6jxyHkaRobZTo386B6s3CZ3peUDH7z7BG1A28Xe/rt/SDgX9SXhkbtwqR9blhMg yhnJQoVQiW3QhcUchZqtukt3GVXp58ihc6KT9c/8Y+oxPxyzhyce7BreJvalxIXf 4QARAQABiKUEGAECAA8FAl9t4ScCGwwFCQAD9IAACgkQSCcsriwx9NLiwwP/enZk s4m5jhucoqbL7y8CJkm7Wy7XzDOSYmW4SpyiF6mVE3YT+umoccyXNlIFnkVsump+ 9+xzTtUmHbppjbByZWdAmHfCNxh1AY/Ay5NmhGU4h1I2nb3TmWylLqUPovWiApfq TKM2dAN0zUkFPBxS2Msa/KXRY0QeGhui96hw2wE= =XFuK -----END PGP PUBLIC KEY BLOCK-----

※在需加密数据的hostB主机上生成公钥/私钥对          ➢gpg --list-keys          ➢gpg --gen-key   ※在hostB主机上导入公钥          ➢gpg --import wang. pubkey          ➢gpg --list-keys   ※用从hostA主机导入的公钥,加密hostB主机的文件file,生成file.gpg          ➢gpg -e -r wang file             file file.gpg

在B机器: 导入这个公钥 gpg --import wang. pubkey 用从hostA主机导入的公钥wang.pub,加密hostB主机的文件file,生成file.gpg gpg -e -r wang file

    ※复制加密文件到hostA主机          ➢scp fstab .gpg hostA:   ※在hostA主机解密文件          ➢gpg -d file.gpg          ➢gpg -ofile -d file.gpg   ※删除公钥和私钥          ➢gpg --delete-keys wangxiaochun          ➢gpg --delete-secret-keys wangxiaochun 删除gpg --list-keys公钥钥匙:gpg --list-keys: gpg --delete-keys laowang 删除私钥:gpg --delete-secret-keys 文件

 

三、CA和证书:

1、CA和证书介绍:

   ※ PKI: Public Key Infrastructure              ➢签证机构: CA (Certificate Authority)          ➢注册机构: RA          ➢证书吊销列表: CRL          ➢证书存取库:   ※ X.509:定义了证书的结构以及认证协议标准          ➢版本号          主体公钥          ➢序列号          CRL分发点          ➢签名算法      扩展信息          ➢颁发者          发行者签名          ➢有效期限.          ➢主体名称

问题:用对称跟非对称的加密的机密方式:key{data +Sa(hash (data))} +Pb(key),可以实现安全认证加密,但是秘钥传输没有保障,如下,黑客C模拟B告诉A,我的Pc.pub就是Pb.pub,这时候,A(data)通过Pc.pub加密后,B接受后解密不了,但是C可以

如何确保A跟B公钥互换是否是正确的:制作身份证,CA(证书颁发机构)

A向CA申请证书,提交A的信息+A的公钥。CA也有自己公钥跟私有,CA拿到后检查确认此信息不是伪造的,CA就会拿自己的私钥给A的公钥加密(签名)(加密后,里面会带有CA自己的信息,确认那个CA颁发,还有加密算法,有效期,A 的描述信息,版本)这就是证书,这个证书不可伪造,芯片检查等,然后这个证书会返回给A,A拿到证书后,把证书穿给给B,B拿到证书后,由于B信任CA,也就是B拿到了CA公钥,进而获取Pa.pub 。对应的反向A获取B的pub。这一过程由CA来保证各自发给我的公钥是真实可靠的。

问题:A 如何拿到Pca 公钥,B如何拿到Pca 公钥

两种情况:1、A跟B装系统,天生系统就自带公钥,win跟ca有合作。而且A跟B都有相同CA的公钥

                  2、如果没有相同CA的公钥,比如A的是上海颁发CA,B是杭州的CA。假如两个地市平级,这个时候,A对应的子CA就会去请求ROOT根(ca),这个时候,根CA去签(子CA公钥+Rca+有效期)  。对应的反向B获取根(ca)。并且win内置跟多的根证书

2、创建CA和证书管理

   ※ 查看证书中的信息:          ➢openssI x509 -in /PATH/FROM/CERT_ FILE -noout             -text issuer subject serial dates             openssl ca -status SERIAL查看指定编号的证 书状态   ※ 吊销证书          ➢A  在客户端获取要吊销的证书的serial             openssI x509 -in /PATH/FROM/CERT_ FILE -noout             -serial -subject           ➢B  在CA上,根据客户提交的serial与subject信息, 对比检验是否与index. txt文件中的信息一致,吊销证书:             openssI ca -revoke /etc/pki/CA/newcerts/SERIAL. pem

2、

 

3、

4、

[root@hdss7-22 ~]# openssl x509 -in baidu.cer -noout -text

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            72:58:78:36:6e:9f:56:e8:1d:41:88:48  (证书编号)
    Signature Algorithm: sha256WithRSAEncryption (算法)
        Issuer: C=BE, O(发布者)=GlobalSign nv-sa, CN=GlobalSign Organization Validation CA - SHA256 - G2
        Validity
            Not Before: Apr  2 07:04:58 2020 GMT
            Not After : Jul 26 05:31:02 2021 GMT
        Subject(颁发给谁): C=CN, ST=beijing, L=beijing, OU=service operation department, O=Beijing Baidu Netcom Science Technology Co., Ltd, CN=baidu.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption

问题:没有有效票的根证书,证书是自己搭建的。导出证书在导入

 

泛域名证书:如*jd.com 

3、证书获取

    ※ 证书类型:          ➢证书授权机构的证书          ➢服务器          ➢用户证书     ※ 获取证书两种方法:           ➢使用证书授权机构                ● 生成签名请求(csr)                ● 将csr发送给CAs                ● 从CA处接收签名          ➢自签名的证书   一台机器                ●自已签发自己的公钥

自己搭建证书:本机生成一个证书申请csr ,然后传递给ca, 考到ca 机器上,ca就会对其私钥签名,然后在拷回去

4、安全协议

    ※ SSL: Secure Socket Layer          ➢TLS: Transport Layer Security                ● 1995: SSL 2.0 Netscape                ● 1996: SSL 3.0                 ● 1999: TLS 1.0                 ● 2006: TLS 1.1 IETF(Internet工程任务组) RFC 4346                ● 2008: TLS 1.2当前使用      目前的使用不是ssl。而是tls.                ● 2015: TLS 1.3           ➢功能:机密性,认证,完整性,重放保护(重放:一个数据包理论发一次生命期就结束了。如果黑客讲发送名户名密码信息截获,冒充这台机器,原封不动再次发一下,服务器校验后正确,又可以登录):解决:时间戳     ※ 两阶段协议,分为握手阶段和应用阶度          ➢握手阶段(协商阶段):客户端和服务器端认证对方身份(依赖于PKI体系,利用数字证书进行身份认证),并协商通信中使用的安全参数、密码套件以及主密钥。后续通信使用的所有密钥都是通过MasterSecret生成。          ➢应用阶段:在握手阶段完成后进入,在应用阶段通信双方使用握手阶段协商好的密钥进行安全通信  应用层数据为数据加报头→tls数据加密→传输层封装tcp /udp报头→封装ip报头→封装以太层针头

SSL/TLS  

    ※ Handshake协议:包括协商安全参数和密码套件、服务器身份认证(客户端身份认证可选)、密钥交换     ※ ChangeCipherSpec协议:一条 消息表明握手协议已经完成     ※ 必Alert协议:对握手协议中- -些异常的错误提醒,分为fatal(断开网络)和warning(报警继续连接)两个级别,fatal类型              错误会直接中断SSL链接,而warning级别的错误SSL链接仍可继续,只是会给出错误警告     ※ Record协议:包括对消息的分段、压缩、消息认证和完整性保护、加密等     ※ HTTPS协议:就是“HTTP协议”和“SSL/TLS协议”的组合。HTTP over SSL"或“HTTP over TLS",对http协议的文本数据进行加          密处理后,成为二进制形式传输

HTTP协议”和“SSL/TLS协议”的组合: 应用层数据为数据加报头→tls数据加密→传输层封装tcp /udp报头→封装ip报头→封装以太层针头 Ethernet(ip(tcp(tls(http(data)))))     通讯图:

\

加密过的应用程序数据,传输层上面封装一个ssl层,应用层数据被封装在里面

http 未加密协议,明文

5、OpenSSL

    ※ OpenSSL:开源项目          ➢三个组件:                ● openssl:多用途的命令行工具,包openssI                ● libcrypto:加密算法库,包openssl-libs                ● libssl:加密模块应用库,实现了ssI及tls,包nss ;     ※ openssI命令: .          ➢两种运行模式:交互模式和批处理模式          ➢openssl version:程序版本号          ➢标准命令、消息摘要命令、加密命令          ➢标准命令:                ● enc, Ca, req, ...

[root@localhost ~]# rpm -qi openssl Name        : openssl Epoch       : 1 Version     : 1.0.2k Release     : 16.el7 Summary     : Utilities from the general purpose cryptography library with TLS implementation Description : The OpenSSL toolkit provides support for secure communications between machines. OpenSSL includes a certificate management tool and shared libraries which provide various cryptographic algorithms and protocols. OpenSSL工具包支持机器。OpenSSL包括一个证书管理工具和共享的提供各种密码算法和协议 [root@localhost ~]# rpm -ql openssl /usr/bin/openssl

libcrypto:加密算法库,包openssI- libs: 提供的加密算法,来自openssl-libs [root@localhost ~]# rpm -ql openssl-libs /etc/pki/tls /etc/pki/tls/certs /etc/pki/tls/private /usr/lib64/.libcrypto.so.1.0.2k.hmac libssl:加密模块应用库,实现了ssI及tls,包nss ;

怎么实现加密算法的应用库、模块

5.1、openssl使用:

交互式: [root@localhost ~]# openssl \ > 

非交互式: [root@hdss7-22 ~]# openssl x509 -in baidu.cer -noout -text

帮助: [root@localhost ~]# openssl ?

openssl:Error: '?' is an invalid command.

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)  hash
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            rc5               rc5-cbc           rc5-cfb           
rc5-ecb           rc5-ofb           seed              seed-cbc          
seed-cfb          seed-ecb          seed-ofb          zlib              

[root@localhost ~]# 

[root@localhost ~]# man openssl  [root@localhost ~]# man dgst [root@localhost ~]# man enc  

5.2、openssl命令

    ※ 对称加密:          ➢工具: openssI enc, gpg          ➢算法: 3des, aes, blowfish, twofish     ※ enc命令:          ➢帮助:man enc          ➢加密:              openssI enc -e -des3 -a -salt -in testfile  -out testfiler.ciipher              enc代表加密方式,-e代表加密    -a 不可读    -salt  自动插入一个随机数作为文件内容加密,默认选项           ➢解密:             openssl enc -d -des3 -a -salt -in testfile.cipher -out testfile             openssl ? 加密:   openssl enc -e -des3 -a -salt -in a.txt -out a.enc

[root@localhost ~]# cat a.txt  4ec2ebd38264 [root@localhost ~]# openssl enc -e -des3 -a -salt -in a.txt -out a.enc enter des-ede3-cbc encryption password:            加密的输入口令 Verifying - enter des-ede3-cbc encryption password: [root@localhost ~]# cat a.enc  U2FsdGVkX19bV05HPME09dc51Pzs+5VPuXYpm+ba+22ICtaBi3Kd10MBXMAGrNHE DLHl/QTC70BjvzAD/Ec3fMhd4PxW4UqhE6G9RV3dSuRxPn3dWejGJy2QNcvRdoq0 0+4WHxWBelBZkqUXRlVaYqm7/DfChE09e78oF1ocFIKfOA4ZTVA2zg== [root@localhost ~]# ll -rw-r--r--  1 root root      187 9月  29 20:29 a.enc -rw-r--r--  1 root root      114 8月  23 20:06 a.txt 解密:openssl enc -d -des3 -a -salt -in a.enc -out a.txt1

[root@localhost ~]# openssl enc -d -des3 -a -salt -in a.enc -out a.txt1 enter des-ede3-cbc decryption password:          输入口令 [root@localhost ~]# ll -rw-r--r--  1 root root      187 9月  29 20:29 a.enc -rw-r--r--  1 root root      114 8月  23 20:06 a.txt -rw-r--r--  1 root root      114 9月  29 20:33 a.txt1 [root@localhost ~]# cat a.txt1  4ec2ebd38264

5.2、openssl命令

    ※ 单向加密:          ➢工具: md5sum, sha1 sum, sha224sum, sha256sum...   openssI dgst     ※ dgst命令:          ➢帮助: man dgst          ➢openssI dgst -md5 [-hex默认] /PATH/SOMEFILE          ➢openssI dgst -md5 testfile          ➢md5sum /PATH/TGHSOMEFILE     ※ MAC: Message. Authenttication Code, 单向加密的一种延伸应用,用于实现网络通信中保证所传输数据的完整性机制          ➢CBC-MAC          ➢HMAC 使用md5或sha1算法

[root@localhost ~]# man dgst dgst, sha, sha1, mdc2, ripemd160, sha224, sha256, sha384, sha512, md2, md4, md5, dss1 -  [root@localhost ~]# openssl dgst -md5 b.txt  MD5(b.txt)= 311a9f57b81679a421ab972c562d5d50 [root@localhost ~]# md5sum b.txt  311a9f57b81679a421ab972c562d5d50  b.txt

5.2、openssl命令

    ※ 生成用户密码:          ➢passwd命令:          ➢帮助: man sslpasswd          ➢openssI passwd -1 -salt SALT(最多8位)  -1 就是md5          ➢openssl passwd -1 -salt centos     ※ 生成随机数:          ➢帮助: man sslrand          ➢openssl rand -base64| -hex NUM          ➢NUM:表示字节数; -hex时, 每个字符为十六进制,相 当于4位二进制,出现的字符数为NUM*2

[root@localhost ~]# openssl passwd -1  Password:  Verifying - Password:  $1$r9/JP8Mj$Yt3yPCgUxvrRnG3SLctUO1 [root@localhost ~]# openssl passwd -1  Password:  Verifying - Password:  $1$UXZ4weIz$4SG/tYr8RZVtB8UtE5o/m1 [root@localhost ~]# openssl passwd -1 -salt UXZ4weIz Password:  $1$UXZ4weIz$4SG/tYr8RZVtB8UtE5o/m1

生成随机数:

[root@ ~]# openssl rand -base64 10 sFO4Eoi6raNu1A== [root@ ~]# openssl rand -base64 10 vtMMqaksdnEdag== [root@ ~]# openssl rand -base64 10 9PmEbaa5UOLlkw== [root@ ~]# openssl rand -hex 2    一个16进制占4位,2个就是8位,一个8位就是一个字节  2是字节  (2个16进制等于一个字节) 1e41 [root@~]# openssl rand -hex 3 228f49

5.2、openssl命令    重要

    ※ 生成密钥对儿: man genrsa     ※ 生成私钥           ➢openssl genrsa -out /PATH/TO/PRIVATEKEY.FILE NUM_BITS               (umask 077; openssI genrsa -out test.key -des 2048)           genrsa :gen 代表生成,rsa算发    -out:指定私钥文件   -des 算法    位数     ※ 从私钥中提取出公钥           ➢openssl rsa -in PRIVATEKEYFILE -pubout -out PUBLICKEYFILE              OpenssI rsa -in test .key -pubout -out test .key. pub     ※ 随机数生成器:伪随机数字.           ➢键盘和鼠标           ➢块设备中断           ➢/dev/random:仅从熵池返回随机数;随机数用尽,阻塞           ➢/dev/urandom:从熵池返回随机数;随机数用尽,会利      用软件生成伪随机数,非阻塞

[root@localhost ceshi]# openssl genrsa -out wang.key    私钥未加密(未用算法,默认是1024位) Generating RSA private key, 1024 bit long modulus ..........+++ ......................................+++ e is 65537 (0x10001) [root@localhost ceshi]# ll -rw-r--r-- 1 root root 1675 9月  29 21:08 wang.key    权限是都可以读 [root@localhost ceshi]# cat wang.key  -----BEGIN RSA PRIVATE KEY----- QIZEwY0dwuX+s7MsuTBaoFO32NJcznQ2I6saCuQ1TCcHpDSsHr9mcwaa6QycNH57 5Ajecb/cGCPzTJZi/4Me+vgLpAxRzp3DjB8dKqL7ya11jCB/4mV5u7tg54Di/IMl -----END RSA PRIVATE KEY----- [root@localhost ceshi]# openssl genrsa -out wang2.key -des 2048    私钥des加密,指定2048位数 Generating RSA private key, 2048 bit long modulus .............................................................+++ .+++ Enter pass phrase for wang2.key:  数据密码口令 Verifying - Enter pass phrase for wang2.key: [root@localhost ceshi]# cat wang2.key  -----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED     加密 ,说明想要将用必须要口令 DEK-Info: DES-CBC,6E69E270B484AAA2

cujMj5sbQNd1vs1TaFmYGeuYZmyQwaeXuLAdEb20Di2cy/Gb0iwkpTogmagpPM50 UDDIuPbiEXxa5b45sigd570olTE3e3evIXhC0lqewnlhNzumQEaklWOq1fe+bszC 122RJ7Im1TOf5Z6FcZ3zwO0mZaoRseTrstPwLhXppBlvbG1rHz+w84yxmr6K/PBm -----END RSA PRIVATE KEY-----

[root@localhost ceshi]# ll -rw-r--r-- 1 root root 1738 9月  29 21:09 wang2.key        权限是都可以读 -rw-r--r-- 1 root root 1675 9月  29 21:08 wang.key

实现只能root读,数据密码口令指定2048位数 [root@localhost ceshi]# (umask 066;openssl genrsa -out wang4.key -des 2048) Generating RSA private key, 2048 bit long modulus ........................+++ ..................................+++ e is 65537 (0x10001) Enter pass phrase for wang4.key: Verifying - Enter pass phrase for wang4.key: 140231341225872:error:0906906F:PEM routines:PEM_ASN1_write_bio:read key:pem_lib.c:385:

[root@hdss7-11 ~]# cat wang4.key  -----BEGIN RSA Proc-Type: 4,ENCRYPTED DEK-Info: DES-CBC,33B0CDADB91DBFFA

Q09iUg8FoRRQ4lTES9KXOLqBtxTT2//n7jPUyYrsbFjwN+cLXRS87+8TRghEu5iw iOyL7y6xq4Df8x7JJkaPPDvom3HgAl1ae9a+LA7xvG7+IF1+5vmdza+WOJAVEuP8 +GGgJZlnFhyknAMnvYNN3xKygytI3EHCa29dBNuskPEwx3mDumsl0Pnx+vgCTzew +C2pSXz1lKVgpMsZJDBHTmQS2NFrbm6v69YCuJe/WoQ1DI9+tA9O7lUXbM+8TikF IK+Z9cdIyVeJW4RtNmnXRwHuBr/CH8KZfUIWAEneFPjNrfMzTHPJYO1tj/otlfvi m/ls5aAyxPUhfcoa9P/Vp4PJEqzI86eJlWUwQWjDtAzRwZL93+IjafxxH6hJUUUS hLHN4k0f0v2LdAzcT1UqtHYoQxvs3hNL8e2r5c34D7NDh1A61KzT/PcWIPMiU/0O c/4iccIGRBb39TyXDXgedFAb55pRFQf6g9XBX44Nma2H7ekc+hBUudAqNwCKvcOI sS+S9IFw1QH4/eP8gz7S998yHfThUlGaP052qrFyi/78seUJP8yNp+6hgr/257d3 dh2id6Yrw45kyoDdTstp2FV66/7+kpOh5RtenTGM7Wg+CwLMiUgmw/rzPeuc77gM b++D8DCqOfqC1y1GlB9zMktoErs2pKz/6UnRrtwDARI6a/VmaycPHAPGoPpHQE8u Qv1SJX7wJetJW+4D8F3XuiyvElSbneY6MPzTqoMdk0/Luv+U2dt6qg6OfCZ8DxHu FlKEm4fx5PLxVDyUz+YutWejNdXg+Qww3c1/7Y0J1sBQzqXkW0R9oDwuNE/3R35j o7zbv+Fh+IWOGaX+ulbl8tmkgaTdY6XdmKJ5adaRLzJaALPzFjcK108Kc4vQ7ExP DtwZtcj85OjU6r2f7lR30qSInRwXBegmgYvMw9gEfvIMB/auXl3xyWf4t5pdiWxD Gi4moad4A2yvosV5SUPtdE4BrQJByAkIGZWHPl3tUl4Qr3+IlMLKx7b5rgyCId/2 6TymEjgZvzqS+TV99Pygm6ElZTFEHv+WwWw7/tYXpNZBoi+QO3eZB32y/5y+5IAY 7N2n8m+VWh/SONTY0FLnFiuznX+I4V3TTTTAkrTfO7QI6HdRJRYxVoc/Q2rAreTM dzD0u2QXNF/BTVyVYp/li1scYzlmDmlzq13r1cvmXCf882eFpud4A4oLAudx1EFx vO4Ojzwe0YEx0bx77ukEqrhN/7h+BiwDrAPK1wtMJ6VUIY/ZNDcer8QtDNBAR0uQ jwkssdAGbuRvrZrGzA99RAy04O6sYeRimksQq2tC1ChmGUatOpEd1YpaOEmgE5KS bcW7sckJN7sr5iB6B+HjQukNQYSSJcgXwIHckNnVsnft3dYRMkAIn7ZQ3lo7bfFN 4o5SHixgOm5PtKyGACJc5qWXnkXm+oxJFwEi14NhhB3XuOhKtcNis89xq188Ocgi AwrQIyszqDqGQHhVKVCdveM1qst5J9x8W7Xn+02yAU51rcGRcKazMdqQttZaAvUR mRVzM1mFvIna3ur707MzAo+etmQm+vIAbkfdcgbEH/ootLDGugSqHg== -----END RSA PRIVATE KEY-----

解释:umask命令用得相对不多, 而umask函数则用得相对较多。 umask命令, 它主要用来设置权限屏蔽, 说白了, 就是间接地设置权限。他说是一个全局设置,在当前shell生效

打开一个linux shell终端: [root@localhost ~]# umask 0022 [root@localhost ~]# touch umask.txt [root@localhost ~]# mkdir umask [root@localhost ~]# ll drwxr-xr-x  2 root root        6 10月  8 09:01 umask -rw-r--r--  1 root root        0 10月  8 09:00 umask.txt

在系统中, 输入umask提示此系统umask的默认值是022。 022是个什么意思呢? 意思是说,  1、如果创建文件, 那么它的默认权限是644 ( 由于是文件,正常情况下只有 r 跟w ,没有x权限,所以默认最高权限rw- 42- 也就是6。umask=022 所以,6-0 6-2 6-2 ,644) 2、 如果是创建目录, 那么它的权限是755 ( 由于是目录,有 r 跟w 跟x权限,所以默认最高权限777。umask=022 所以,7-0 7-2 7-2 ,755) 3、修改umask=002 [root@localhost ~]# umask 002 [root@localhost ~]# touch umask002.txt [root@localhost ~]# mkdir umask002 [root@localhost ~]# ll drwxrwxr-x  2 root root        6 10月  8 09:15 umask002 -rw-rw-r--  1 root root        0 10月  8 09:15 umask002.txt 由此可见, umask就是为控制默认权限而生的。 4、再打开另一个终端, 进行操作, 结果为: [root@localhost ~]# umask  022  在另外一个shell终端中, umask的值仍然是022,   可见, 一个shell进程中的umask值仅在当前shell进程中才有效。

umask函数, 它常用来控制进程创建文件/目录的默认权限, 代码如下:

#include <stdio.h>
 
int main()
{
	system("touch test0.txt");
	system("mkdir folder0");
	
	umask(022);
	system("touch test1.txt");
	system("mkdir folder1");
	
	umask(066);
	system("touch test2.txt");
	system("mkdir folder2");
	
	system("ls -l");
	
	return 0;
}

结果为: [jerry@localhost root]$ umask 000  [jerry@localhost root]$ gcc test.c   [jerry@localhost root]$./a.out   -rwxrwxrwx 1 jerry jerry4925 May  5 07:43 a.out  drwxrwxrwx 2 jerry jerry4096 May  5 07:43 folder0  drwxr-xr-x 2 jerry jerry4096 May  5 07:43 folder1  drwx--x--x 2 jerry jerry 4096 May  5 07:43 folder2  -rw-rw-rw- 1 jerry jerry 0 May  5 07:43 test0.txt  -rw-r--r-- 1 jerry jerry 0 May  5 07:43 test1.txt  -rw------- 1 jerry jerry 0 May  5 07:43 test2.txt  -rwxrw-rw- 1 jerry jerry 279 May  5 07:42 test.c  [jerry@localhost root]$umask  0000 

shell是父进程, ./a.out进程是子进程.  下面来分析一下:      1. 根据test0.txt可知, 父进程可以影响子进程的默认屏蔽字。      2. 根据test1.txt可知, 子进程可以改变自己的默认屏蔽字。      3. 根据最后shell进程的屏蔽字为000可知, 子进程不会改变父进程的屏蔽字。  实际上, umask命令与函数的用法是一致的。 

[root@hdss7-11 ~]# openssl rsa -in wang4.key -pubout -out wang4.pubkey Enter pass phrase for wang4.key:     writing RSA key [root@hdss7-11 ~]# ll -rw-------  1 root root 1738 10月  9 09:28 wang4.key -rw-r--r--  1 root root  451 10月  9 09:34 wang4.pubkey

在上面的基础,通话双方需要CA才能公证。正常:生成私钥 →私钥申请CA  → 证书颁发带公钥

➢/dev/random:仅从熵池返回随机数;随机数用尽,阻塞。 意思是:调取的块设备,磁盘中断等,也就是鼠标移动等位置操作会计算出来放进/dev/random熵池,然后做成随机数,一但随机数用光了,等鼠标键盘移动录入熵池 ➢/dev/urandom:从熵池返回随机数;随机数用尽,会利用软件生成伪随机数,非阻塞

[root@hdss7-11 ~]#cat /dev/urandom |tr -dc '0-9a-zA-Z' |head -c 10 BIN0rVL0Q9[root@hdss7-11 ~]# cat /dev/urandom |tr -dc '0-9a-zA-Z' |head -c 10 Pejo2jIGAr[root@hdss7-11 ~]# cat /dev/urandom |tr -dc '0-9a-zA-Z' |head -c 10 此处每一位可为A-Za-z0-9,共26+26+10=62种可能,取长度为22即可满足要求) 1、head -n 80 /dev/urandom 取/dev/urandom文件的前80行 (/dev/urandom是linux下一个生成随机数的文件) 2、tr -dc A-Za-z0-9  即,用空格替换文本中除A-Za-z0-9之外的所有字符,并删除空格 备注:tr命令是替换或者删除字符的命令.-d的意思是删除后面集合中的字符,-c的意思是取反,就是说,除了后面的字符集合其他的都删除掉.我们可以通过后面的字符的集合来指定自己的密码复杂度. 3、 head -c 22  读取头22个字符

5.3、openssl 操作

PKI: Public Key Infrastructure       ➢ CA       ➢ RA       ➢ CRL       ➢证书存取库 建立私有CA:       ➢OpenCA    win简单       ➢openssl     证书申请及签署步骤:       ➢1、生成申请请求       ➢2、RA核验       ➢3、CA签署       ➢4、获取证书

生成私钥→申请提交个人信息公司,省市    CA收到请求(拷贝到CA) CA给签发生成证书文件 使用服务(https)

5.4、创建CA和申请证书

 ※ 创建私有CA:       ➢ openssl的配置文件: /etc/pki/tls/openssl.cnf       ➢ 三种策略:匹配、支持和可选       ➢ 匹配指要求申请填写的信息跟CA设置信息必须-致,支持指必须填写这项申请信息,可选指可有可无    ※ 1.创建所需要的文件       ➢ touch /etc/pki/CA/index. txt生成证书索引数据库文件       ➢ echo 01 > /etc/pki/CA/serial 指定第- - 个颁发证书的序列号    ※ 2、 CA自签证书       ➢ 生成私钥       ➢ cd /etc/pki/CA/       ➢ (umask 066; openssI genrsa -out /etc/pki/CA/private/cakey.pem 2048)    ※ 生成自签名证书       ➢ openssI req -new -x509 -key       ➢ /etc/pki/CA/private/cakey.pem -days 7300 -out       ➢ /etc/pki/CA/cacert. pem       ➢ -new;生成新证书签署请求       ➢ -x509:专用于CA生成自签证书       ➢ -key:生成请求时用到的私钥文件       ➢ -days n:证书的有效期限音       ➢ -out /PATH/TO/SOMECERTFILE:证书的保存路径    ※ 3.领发证书       ➢ A 在需要使用证书的主机生成证书请求           给web服务器生成私钥           (umask 066; openssI genrsa -out           /etc/ pki/tls/private/test.key 2048)          生成证书申请文件          openssl req -new -key /etc/pki/tls/private/test.key -days 365 -out etc/pki/tls/test . csr       ➢ B 将证书请求文件传输给CA       ➢ C CA签署证书,,并将证书颁发给请求者             openssI ca -in /tmp/test.csr -out  /etc/pki/CA/certs/test.cnt -days 365             注意:默认国家,省,公司名称三项必须和CA一致       ➢ D 查看证书中的信息:              openssI x509 - in /PATH/FROM/CERT_ FILE -noout -text |issuer| subject| serial| dates              openssI ca -status SERIAL查看指定编号的证书状态    ※ 4、吊销证书       ➢ A 在客户端获取要吊销的证书的serial           openssl x509 -in /PATH/FROM/CERT_ FILE -noout -serial -subject       ➢ B 在CA上,根据客户提交的serial与subject信息,对比检验是           否与index.txt文件中的信息致,吊销证书: .           openssI ca -revoke /etc/ pki/CA/ newcerts/ SERIAL.pem       ➢ C 指定第一个吊销证书的编号            注意:第一次更新证书吊销列表前,才需要执行            echo 01 > /etc/pki/CA/crlnumber       ➢ D 更新证书吊销列表            openssl ca -gencrI -out /etc/ pki/CA/crl/crl. pem            查看crl文件:            openssI crl -in /etc/ pki/CA/crl/crl.pem -noout -text

10.4.7.11 作为web外部服务器,提供https       10.4.7.12 作为CA服务器 

1、 配置ca搭建必要的配置: vim /etc/pki/tls/openssl.cnf   。文件内容可以不用改,但是必须懂,ca通过这个文件创建ca

           [root@hdss7-12 ~]# rpm -qf /etc/pki/tls/openssl.cnf     查看谁生成了openssl.cnf             openssl-libs-1.0.2k-19.el7.x86_64

这个文件并不是ca特有的文件,而是openssl 配置文件

#################################################################### [ ca ] default_ca      = CA_default            # The default ca section   他允许在这个机器上创建多个CA机构配置,其中CA_default是默认

#################################################################### [ CA_default ]        默认CA

dir             = /etc/pki/CA           # Where everything is kept   dir             变量赋值

[root@hdss7-12 ~]# tree /etc/pki/CA/ /etc/pki/CA/ ├── certs ├── crl ├── newcerts └── private

[root@hdss7-12 ~]# rpm -ql openssl /etc/pki/CA /etc/pki/CA/certs /etc/pki/CA/crl /etc/pki/CA/newcerts /etc/pki/CA/private

certs           = $dir/certs            # Where the issued certs are kept           放发布的证书,存档,跟原证书内容一致存放在哪里 crl_dir         = $dir/crl                # Where the issued crl are kept               证书签发crl列表目录存放在哪里

证书吊销列表 (Certificate Revocation List ,简称: CRL) 是 PKI 系统中的一个结构化数据文件,该文件包含了证书颁发机构 (CA) 已经吊销的证书的序列号及其吊销日期。 CRL 文件中还包含证书颁发机构信息、吊销列表失效时间和下一次更新时间,以及采用的签名算法等。证书吊销列表最短的有效期为一个小时,一般为 1 天,甚至一个月不等,由各个证书颁发机构在设置其证书颁发系统时设置。如下图所示:

database        = $dir/index.txt        # database index file.     数据库文本文件,颁发的证书的,每个证书的编号索引描述等信息 #unique_subject = no                    # Set to 'no' to allow creation of                                                       # several ctificates with same subject.  是否允多个证书使用相同的subject。

subject就是给谁颁发证书 ,颁发给

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 key   CA证书私钥文件 RANDFILE        = $dir/private/.rand    # private random number file    随机数  

x509_extensions = usr_cert              # The extentions to add to the cert  x509后缀的扩展

name_opt      = ca_default              # Subject Name options    颁发者默认配置 cert_opt        = ca_default               # Certificate field options

# Extension copying option: use with caution. # copy_extensions = copy

# Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs<

标签: 1v69连接器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台