Linux基本功杂记——[022]——「OpenSSL」

Posted 纯原创,零转载

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux基本功杂记——[022]——「OpenSSL」相关的知识,希望对你有一定的参考价值。

一、常用操作


对称加密

openssl enc -e -aes256 -base64 -in goal.file -out result.file    加密,-base64 指使用 base64 編码
openssl enc -d -aes256 -base64 -in result.file -out goal.file    解密

单向加密(文件完整性,没有被篡改过):

openssl dgst -sha512 goal.file    使用 sha512 算法生成特征码,默认为 md5 算法

生成随机数

openssl rand -base64 10    按 base64 編码规则,生成 10 位随机数

管理用户密码(即对密码加密存放)

openssl passwd -1 -salt `openssl rand -base64 6`    注:-1 指使用 md5 算法,另可选 -apr1;-1 与 -salt 均为可选项

非对称加密(密钥对,私钥加密用于签名証明身份,公钥加密用于保护文件内容)

openssl genrsa 4096 > pkey.file && chmod 0600 pkey.file    生成私钥,密钥强度设置为 4096 ,可选 10242048 ;私钥权限必須严整控制
openssl rsa -in pkey.file -pubout > pubkey.file    生成公钥(从私钥中提取)
openssl rsautl
-encrypt -in goal.file -inkey pubkey.file -pubin -out result.file 使用公钥对文件 goal.file 加密,-pubin 声明使用公钥加密,默认是私钥 openssl rsautl -decrypt -in result.file -inkey pkey.file -out goal.file 使用私钥对文件 result.file 解密

 

二、 CA 相关


参考資料

各詞解释

  • PKI :Public Key Infrastructure
  • CRL :Certificate revocation lists ,证书黑名单、证书废除列表
  • PKCS :Public Key Cryptography Standards ,公钥加密标准
  • X.509 :国际电信联盟-电信部分(ITU-T)和国际标准化组织(ISO)的证书格式标准,作为ITU-ISO目录服务系列标准的一部分,X.509定义了公钥证书结构的基本标准;一份X.509证书是一些标准字段的集合,这些字段包含有关用户或设备及其相应公钥的信息
  • CSR :Certificate Signing Request,证书签名请求,是需要提交給 CA 的申请文件
  • CRT :certificate,即证书
  • PEM :Privacy Enhanced Mail,証书文件編码格式的一种,采用 base64 文本文件方式
  • DER :Distinguished Encoding Rules,另一种証书文件編码格式,二进制編码,常见于 Windows 平台

配置文件位置:/etc/ssl/openssl.cnf    不同系统平台可能有差别,使用 openssl version -d 命令进行确认

一、自签証书(CA 服务端):

  1. 对应 openssl.cnf 中定义的位置,创建 index.txt 、serial 文件,index.txt 留空,serial 文件根据需要每行添加一个数字(如:000、001等)
  2. 使用 openssl genrsa 生成服务端私钥:caPrivate.key
  3. 生成自签証书:openssl req -x509 -new -key CAprivate.key -days 3650 > CAcert.pem    注: -x509 选项用于创建自签(根) CA ,-days 指明有效期

二、申请証书(客户端):

  • 生成申请文件并提交至 CA 机构 :openssl req -new -key USERprivate.key -days 365 > USERcert.scr

三、签发証书(服务端): 

  • 签发証书:openssl ca -in USERcert.csr -days 100 > USERcert.pem

以上是关于Linux基本功杂记——[022]——「OpenSSL」的主要内容,如果未能解决你的问题,请参考以下文章

Linux基本功杂记——[018]——『Network Bonding』

Linux基本功杂记——[013]——『mdadm Raid & LVM』

Linux基本功杂记——[023]——「OpenSSH tunneling」

Linux基本功杂记——[020]——『ext4 Quota』

Linux基本功杂记——[017]——LFS构建逻辑理解

Linux基本功杂记——[021]——『rhel6系列的开关机脚本』