码迷,mamicode.com
首页 > 其他好文 > 详细

安全和加密

时间:2019-11-10 09:20:44      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:dong   中间   令行   加密和解密   开源   完成后   邮件服务   目录   let   

安全和加密

安全机制

信息安全防护的目标
保密性      Confidentiality
完整性      Integrity
可用性      Usability
可控制性    Controlability
不可否认性  Non-repudiation

安全防护环节
物理安全:各种设备/主机、机房环境
系统安全:主机或设备的操作系统
应用安全:各种网络服务、应用程序
网络安全:对网络访问的控制、防火墙规则
数据安全:信息的备份与恢复、加密解密
管理安全:各种保障性的规范、流程、方法

安全

安全: STRIDE
Spoofing 假冒 
    发邮件冒充
       telnet 127.0.0.1 25
       25端口为邮件工作端口,连接的软件为Postfix,监听ESMTP,对应25端口
       helo magedu.com
       mail from(以谁的身份发送):mayun@alibaba.com
       rcpt to(发送给谁):wang
       data(内容)
       以.结束
dig命令可以做名字解析
  -t 可以查到邮件服务器的地址,邮件地址的类型为mx
例: 
   dig  -t mx 163.com
   telnet 163mx00.mxmail.netease.com 25 即可连通网易邮箱
Tampering 篡改
Repudiation 否认
Information Disclosure 信息泄漏 (密码泄露)
Denial of Service 拒绝服务
Elevation of Privilege 提升权限

安全设计基本原则

使用成熟的安全系统
以小人之心度输入数据
外部系统是不安全的
最小授权
减少外部接口
缺省使用安全模式
安全不是似是而非
从STRIDE思考
在入口处检查
从管理上保护好你的系统

安全算法

常用安全技术
    认证  
    授权
    审计
    安全通信

加密算法和协议
    对称加密
    公钥加密
    单向加密
    认证协议

对称加密算法

对称加密:加密和解密使用同一个密钥 key1==key2
data明文 --->加密(key1)--->data‘密文--->(key2)--->data

    DES:Data Encryption Standard,56bits
         (密钥长度56位,7个字节,逐渐淘汰,不太.安全)
    3DES:将DES加密三次
    AES:Advanced (128, 192, 256bits)

    Blowfish,Twofish 商用
    IDEA,RC6,CAST5

特性:
    1、加密、解密使用同一个密钥,效率高
    2、将原始数据分割成固定大小的块,逐个进行加密
缺陷:
    1、密钥过多
    2、密钥分发
    3、数据来源无法确认

非对称加密算法

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

非对称加密

public key 公钥:公开
secret(private) key 私钥:私有 

基于一对公钥/密钥对
    ?用密钥对中的一个加密,另一个解密
实现加密:
    ?接收者
        生成公钥/密钥对:P和S
        公开公钥P,保密密钥S
    ?发送者
        使用接收者的公钥来加密消息M
        将P(M)发送给接收者
    ?接收者
        使用密钥S来解密:M=S(P(M))

alice(Pa,Sa)--->bob(Pb,Sb)
公钥和私钥成对使用,alice的公钥私钥成对使用,bob的公钥私钥成对使用
    一个数据用对应的公钥加密,就必须用对应的成对的私钥解密
    反过来,如果用对应的私钥加密,就必须用成对的公钥解密

理解:如果用alice的公钥(Pa)加密,就必须用alice的私钥(Sa)解密
      如果用alice的私钥(Sa)加密,就必须用alice的公钥(Pa)解密

非对称加密

实现数字签名:    私钥加密 = 数字签名(确认数据来源)
    ?发送者
        生成公钥/密钥对:P和S
        公开公钥P,保密密钥S
        使用密钥S来加密消息M
        发送给接收者S(M)
?接收者
        使用发送者的公钥来解密M=P(S(M))

结合签名和加密
分离签名
rpm -K /misc/cd/Packages/tree-1.6.0-10.e17.x86.64.rpm 检查数据来源是否安全
每个公司发布包的时候都有数字签名,进行了私钥加密,
如果想要确定包的数据来源,就必须使用公钥,进行解密
验证包是由哪家公司发布的,系统默认没有公钥,需要导入

rpm --import /misc/cd/RPM-GPG-KEY-CentOS-7  导入公钥
获得公钥以后即可验证包的数字签名

/etc/yum.repos.d/base.repo yum源配置文件中
gpgcheck=1 安装某个包的时候要验证包的数子签名,=0则不检查 
将密钥的路径写进配置文件,第一次安装包的时候,会导入密钥

导入公钥的两种方式:
1. rpm --import   导入公钥

2.在yum源配置文件中,添加gpgkey路径

RSA和DSA

RSA:公钥加密算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的,
RSA取名来自开发他们三者的名字,后成立RSA数据安全有限公司。
RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码***,已被ISO推荐为公钥数据加密标准。
RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,
因此可以将乘积公开作为加密密钥

DSA (Digital Signature Algorithm):1991年7月26日提交,并归属于David W. Kravitz前NSA员工,
DSA是Schnorr和ElGamal签名算法的变种,被美国NIST作为SS(DigitalSignature Standard),
DSA是基于整数有限域离散对数难题的,其安全性与RSA相比差不多。
DSA只是一种算法,和RSA不同之处在于它不能用作加密和解密,也不能进行密钥交换,只用于签名,它比RSA要快很多

DSA只能实现数字签名,无法实现数据加密

单向散列(单向hash算法)

将任意数据缩小成固定大小的“指纹”
    ?任意长度输入
    ?固定长度输出
    ?若修改数据,指纹也会改变(“不会产生冲突”)
    ?无法从指纹中重新生成数据(“单向”)

功能:数据完整性

常见算法
    md5: 128bits、sha1: 160bits、sha224 、sha256、sha384、sha512

常用工具
    ?md5sum | sha1sum [ --check ] file
        md5sum fstab > fstab.md5
        md5sum -checkfstab.md5 检测md5值 
    ?openssl、gpg
    ?rpm -V  检测包是否发生修改
hash(data) => digest 摘要 
hash算法得到的摘要,不可逆推回数据,单向的
数据如果不变,通过hash得到的摘要digest也是固定的
如果数据发生改变,得到的摘要则会发生改变
结论:
数据不同,摘要必不同
摘要相同,摘要必相同

固定的hash算法,得到的摘要也是固定大小(长度)
md5  128bit  数据不同128bit的值不同

hash算法 经常用来做数据完整性的检查,检查数据是否被更改

数字签名

技术图片

原文件利用hash运算(md5)得到128bit的数字摘要(hash值)
使用Sa加密得到的hash值,形成数字签名,将原文附加在后面,得到完整的新的文件
使用Pb加密生成的新文件,得到密文,发送给对方  

确保无法被第三方截获,并确认数据来源

使用Sb解密收到的密文,得到数字签名和原文件
对原文件做hash运算(md5),得到128bit的数字摘要
使用Pa解密数字签名,得到发送来的数字摘要
对比两个数字摘要是否一致
一致,则原文没有被篡改

即实现的数据的安全传输,又实现了数据来源的确认

综合对称加密,非对称加密,和单向散列三种算法,实现加密

key{data +Sa[hash(data)]}+Pb(key) ==>

将数据做hash运算,得到数字摘要(digest)       # 单向散列hash算法 
使用a的私钥将数字摘要(digest)做数字签名     # 非对称加密算法
使用对称加密将原文数据和数字签名进行加密    # 对称加密算法
将对称密钥,使用b的公钥进行加密

对方可以使用Sb解开对称密钥,得到对称密钥中的数据

应用程序:RPM

文件完整性的两种实施方式
被安装的文件
    ?MD5单向散列
    ?rpm --verify package_name (or -V)
发行的软件包文件
    ?GPG公钥签名
    ?rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat*
    ?rpm --checksig pakage_file_name (or -K)

密钥交换

密钥交换:IKE( Internet Key Exchange )
    公钥加密:
    DH (Deffie-Hellman):生成会话密钥,由惠特菲尔德·迪菲(Bailey Whitfield Diffie)和马丁·赫尔曼(Martin Edward Hellman)在1976年发表
参看:https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange

DH:
1>A: g,p 协商生成公开的整数g, 大素数p
  B: g,p

2>A:生成隐私数据 :a (a<p ),计算得出 g^a%p,发送给B
  B:生成隐私数据 :b,计算得出 g^b%p,发送给A

3>A:计算得出 [(g^b%p)^a] %p = g^ab%p,生成为密钥
  B:计算得出 [(g^a%p)^b] %p = g^ab%p,生成为密钥

使用gpg实现对称加密

对称加密file文件
    gpg -c file  对文件进行加密
    ls file.gpg  生成加密文件
在另一台主机上解密file
    gpg -o file -d file.gpg

使用gpg工具实现公钥加密

在hostB主机上用公钥加密,在hostA主机上解密
在hostA主机上生成公钥/私钥对
    gpg --gen-key
在hostA主机上查看公钥
    gpg --list-keys
在hostA主机上导出公钥到wang.pubkey
    gpg -a --export -o wang.pubkey
从hostA主机上复制公钥文件到需加密的B主机上
    scp wang.pubkey hostB:

使用gpg工具实现公钥加密

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

使用gpg工具实现公钥加密

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

中间人

技术图片

CA和证书

PKI:Public Key Infrastructure
    签证机构:CA(Certificate Authority)
    注册机构:RAc 中间人,他会帮你把申请的证书提交给真正的CA
    证书吊销列表:CRL
    证书存取库:
X.509:定义了证书的结构以及认证协议标准
    版本号           主体公钥
    序列号           CRL分发点
    签名算法         扩展信息
    颁发者           发行者签名
    有效期限
    主体名称

证书获取

证书类型:
    证书授权机构的证书
    服务器
    用户证书
获取证书两种方法:
?使用证书授权机构
    生成证书请求(csr)
    将证书请求csr发送给CA
    CA签名颁发证书
?自签名的证书
    自已签发自己的公钥

技术图片

A将公钥Pa发送给CA,CA验证身份,成功会用自己的私钥签名公钥Sca(Pa)
并追加信息:CA的信息,A的信息和有限期 得到证书,将证书发送给A,A从而有了证书
A和B事先已经拿到了CA的公钥

技术图片
所有的机器都必须有rootCA的公钥,rootCA进行自签名Srootca(Prootca)+Prootca,自己证明自己

安全协议

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 当前使用
    2015:TLS 1.3
    功能:机密性,认证,完整性,重放保护

两阶段协议,分为握手阶段和应用阶段
    握手阶段(协商阶段):客户端和服务器端认证对方身份(依赖于PKI体系,利用数字证书进行身份认证),并协商通信中使用的安全参数、密码套件以及主密钥。后续通信使用的所有密钥都是通过MasterSecret生成
    应用阶段:在握手阶段完成后进入,在应用阶段通信双方使用握手阶段协商好的密钥进行安全通信   

SSL/TLS

技术图片

SSL/TLS工作在应用层和传输层中间,把应中层数据加密,到达传输层的时候已经被加密了

SSL/TLS

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

HTTPS结构

技术图片

HTTPS工作过程

技术图片

OpenSSL

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

openssl命令

对称加密:
    工具:openssl enc, gpg
    算法:3des, aes, blowfish, twofish
enc命令:
帮助:man enc
加密:
openssl enc -e -des3 -a -salt -in testfile -out testfile.cipher
解密:
openssl enc -d -des3 -a -salt –in testfile.cipher -out testfile
openssl ?

-a base64编码
salt 盐:将密码顺序打乱,随机生成(也可指定),再进行加密
-in 跟加密文件
-out 跟输出结果
例:加密
openssl enc -e -des3 -a -salt -in f1.txt -out f1.txt.enc

openssl命令

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

生成用户密码:
    passwd命令:
    帮助:man sslpasswd
    openssl passwd -1 -salt SALT(最多8位)
    openssl passwd -1 –salt centos

生成随机数:
    帮助:man sslrand
    openssl rand -base64|-hex NUM
    NUM: 表示字节数,使用-hex,每个字符为十六进制,相当于4位二进制,出现的字符数为NUM*2

公钥加密:
    算法:RSA, ELGamal
    工具:gpg, openssl rsautl(man rsautl)
数字签名:
    算法:RSA, DSA, ELGamal
密钥交换:
    算法:dh
    DSA:Digital Signature Algorithm
    DSS:Digital Signature Standard
    RSA:

openssl命令

生成密钥对儿:man genrsa  生成RSA公钥私钥对
生成私钥
    openssl genrsa -out /PATH/TO/PRIVATEKEY.FILE NUM_BITS
                    输出一个私钥文件,要求指定私钥程度(位数)
    (umask 077; openssl genrsa –out test.key –des 2048) 使用对称密钥生成口令
    例: (umask 066;openssl genrsa -out app.key -des 1024)
         -des 生成密钥的的密码,忘记无法破解,可以重新生成

    openssl rsa -in test.key –out test2.key 将加密key解密
        例:openssl rsa -in app.key  -out app1.key

从私钥中提取出公钥
    openssl rsa -in PRIVATEKEYFILE –pubout –out PUBLICKEYFILE
    openssl rsa –in test.key –pubout –out test.key.pub  
        例:openssl rsa -in app.key -pubout -out app.key.pub

随机数生成器:伪随机数字
    键盘和鼠标,块设备中断
    /dev/random:仅从熵池返回随机数;随机数用尽,阻塞
    /dev/urandom:从熵池返回随机数;随机数用尽,会利用软件生成伪随机数,非阻塞

OpenSSL

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

创建CA和申请证书

创建私有CA:
    openssl的配置文件:/etc/pki/tls/openssl.cnf
    三种策略:match    匹配
              optional 可选
              supplied 提供

    match:要求申请填写的信息跟CA设置信息必须一致
    optional:可有可无,跟CA设置信息可不一致
    supplied:必须填写这项申请信息,

1、创建所需要的文件
    touch /etc/pki/CA/index.txt 生成证书索引数据库文件
    echo 01 > /etc/pki/CA/serial 指定第一个颁发证书的序列号

2、 CA自签证书
    生成私钥
    cd /etc/pki/CA/
    (umask 066; openssl genrsa -out private/cakey.pem 2048)

生成自签名证书
    openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem
    -days 3650 -out /etc/pki/CA/cacert.pem
选项说明:
    -new: 生成新证书签署请求
    -x509:专用于CA生成自签证书
    -key: 生成请求时用到的私钥文件
    -days n:证书的有效期限
    -out /PATH/TO/SOMECERTFILE: 证书的保存路径

3、颁发证书
在需要使用证书的主机生成证书请求
    给web服务器生成私钥
    (umask 066; openssl genrsa –out /data/test.key 2048)
    生成证书申请文件
    openssl req -new -key /data/test.key -out /data/test.csr

将证书请求文件传输给CA
CA签署证书,并将证书颁发给请求者
    openssl ca -in /tmp/test.csr –out /etc/pki/CA/certs/test.crt -days 100
    注意:默认要求 国家,省,公司名称三项必须和CA一致

查看证书中的信息:
    openssl x509 -in /PATH/FROM/CERT_FILE -noout -text|issuer|subject|serial|dates
    openssl ca -status SERIAL 查看指定编号的证书状态

4、吊销证书
    在客户端获取要吊销的证书的serial
    openssl x509 -in /PATH/FROM/CERT_FILE -noout -serial -subject

在CA上,根据客户提交的serial与subject信息,对比检验是否与index.txt文件中的信息一致,吊销证书:
openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem

指定第一个吊销证书的编号,注意:第一次更新证书吊销列表前,才需要执行
    echo 01 > /etc/pki/CA/crlnumber
更新证书吊销列表
    openssl ca -gencrl -out /etc/pki/CA/crl.pem
查看crl文件:
    openssl crl -in /etc/pki/CA/crl.pem -noout -text

搭建CA架构实操

实验前准备:
1.SELINUX关闭
2.IPTAB关闭
3.时间校验

使用openssl搭建CA
搭建完成用户向CA申请证书 

vim /etc/pki/tls/openssl.cnf   文件详细配置
openssl的范例配置文件
一台电脑可以搭建多个CA

[ ca ]            #为默认CA
default_ca      = CA_default 

[ CA_default ]   #定义默认CA的相关信息

dir             = /etc/pki/CA       # 默认CA中相关数据的存放路径,dir为变量指的路径
certs           = $dir/certs        # 存放发布的证书
crl_dir         = $dir/crl          # 存放证书吊销的列表的文件
database        = $dir/index.txt    # 存放索引,数据库 (需要手工创建)

new_certs_dir   = $dir/newcerts     # 存放新证书路径,新颁发的证书,存放在此目录

certificate     = $dir/cacert.pem   # CA自己的证书,rootCA只能自签名
serial          = $dir/serial       # 当前序列号,每颁发一个证书都要给它加编号,
                                    # 下一个证书颁发的编号到几了,写到此文件
                                    # 需要手动创建 
crlnumber       = $dir/crlnumber    # 证书吊销列表的编号

crl             = $dir/crl.pem           # 证书吊销列表的文件存放的路径
private_key     = $dir/private/cakey.pem # CA私钥存放路径
RANDFILE        = $dir/private/.rand     # 随机数

default_days    = 365                   # 证书默认有效期
default_crl_days= 30                    # CRL吊销列表有效值
default_md      = sha256                # 默认hash算法
preserve        = no

policy          = policy_match          #颁发证书的策略

[ policy_match ]    定义颁发证书的策略

搭建CA的时候,需要提交CA的相关信息
countryName             = match         # 国家  
stateOrProvinceName     = match         # 省份
organizationName        = match         # 组织(公司名)
organizationalUnitName  = optional      # 部门
commonName              = supplied      # 服务器名称或网站域名
emailAddress            = optional      # 邮箱

国家,省份,组织 三项申请用户必须和CA保持一致

[ policy_anything ]  可选,可一样可不一样
CA服务器

1.创建所需的文件
  touch /etc/pki/CA/index.txt 生成证书索引数据库文件
  echo 01 > /etc/pki/CA/serial 指定第一个颁发证书的序列号

2.CA自签证书,生成私钥
  cd /etc/pki/CA/
  (umask 066;openssl genrsa -out private/cakey.pem 2048) #生成私钥文件

3.利用私钥,给自己生成一个自签名的证书
  openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650
  req   表示申请 
  -new  新证书
  -x509 加x509    表示自签名,不加表示普通证书
  -key  private/cakey.pem  指定私钥
  -out  cacert.pem         生成的证书路径
  -days 3650    有效期

  写入国家两个字符:CN
  省份:beijing
  城市:beijing
  公司:adong
  部门:devops
  服务器名称:ca.adong.com
  邮箱:...

 用户申请证书
 1.生成私钥
   cd /data/app
   (umask 077;openssl genrsa -out app.key 1025)

 2.利用私钥生成证书申请文件
   openssl req -new -key app.key -out app.csr

   申请内容 国家,省份和公司必须和CA保持一致
   国家:CN
   省份:beijing 
   城市:bj
   公司:adong
   部门:devops
   服务:app.adong.com
   ...

 3.将用户申请的证书文件上传到CA服务器
   scp app.csr root@192.168.38.100:/etc/pki/CA

 4.CA给用户颁发证书
   openssl ca -in app.csr -out certs/app.crt -day 100
   ca 颁发证书
   -in app.csr 证书申请文件
   -out certs/app.crt 最终生成的证书,放在/etc/pki/CA/certs目录下  (crt证书文件)

   确定提交信息,是否正确,正确y回车即可

 5.验证证书是否有效
   openssl ca -status 01
    Using configuration from /etc/pki/tls/openssl.cnf
    01=Valid (V)  #V表示有效
系统默认不允许一个用户申请多个证书

cat /etc/pki/CA/index.txt.attr
unique_subject = yes  #唯一的申请主题
                      #意思是一个主机只能申请一个证书
改为no,即可申请多个证书

在CA主机申请证书
(umask 077;openssl genrsa -out app2.key 1024)
openssl req -new -key app2.key -out app2.csr
openssl ca -in app2.csr -out /etc/pki/CA/certs/app2.crt -days 100

cat /etc/pki/CA/index.txt
V   191210091002Z       01  unknown /C=CN/ST=beijing/O=adong/OU=devops/CN=app.adong.com
V   191210111559Z       02  unknown /C=CN/ST=beijing/O=adong/OU=devops/CN=ca.app2.com

吊销证书
openssl ca -revoke /etc/pki/CA/newcerts/02.pem

cat /etc/pki/CA/index.txt
V   191210091002Z       01  unknown /C=CN/ST=beijing/O=adong/OU=devops/CN=app.adong.com
R   191210111559Z   190901111924Z   02  unknown /C=CN/ST=beijing/O=adong/OU=devops/CN=ca.app2.com

或者使用命令验证
openssl ca -status 02
Using configuration from /etc/pki/tls/openssl.cnf
02=Revoked (R)

被吊销的证书改为Revokde(R)

需要生成公开的证书吊销列表,通知其他用户此证书已被吊销

创建证书吊销列表目录
echo 01 > /etc/pki/CA/crlnumber
更新证书吊销列表
openssl cs -gencrl -out /etc/pki/CA/crl.pem

安全和加密

标签:dong   中间   令行   加密和解密   开源   完成后   邮件服务   目录   let   

原文地址:https://blog.51cto.com/14550493/2449040

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!