热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

openssl命令使用

opensslopenssl是个密码工具集,提供多端接口调用方式组成:1.代码库libcryto,libssl(ssltls)2.工具集openssl对称加

openssl


openssl是个密码工具集,提供多端接口调用方式


组成:
1. 代码库 libcryto ,libssl(ssl/tls)
2. 工具集 openssl

对称加密


对称加密主要是用aes,des算法



需要注意的是解密不要在源文件操作,否则解密失败源文件也没有了


usage: enc -ciphername [-aadepp] [-base64] [-bufsize number] [-debug]
[-in file] [-iv iv] [-k key] [-k password]
[-kfile file] [-md digest] [-none] [-nopad] [-nosalt]
[-out file] [-pass arg] [-s salt] [-salt]
-e 指定加密算法
-d 解密
-a 使用base64编码
-base64 使用base64解码
-in 要加密文件存放位置
-out 加密后的文件存放位置
-k 输入密码
-iv 输入一个向量
加密
$ openssl enc -e aes-128-cbc -in secret.txt -out myaes128.txt

解密
$ openssl enc -d aes-128-cbc -in myaes128.txt -out

单向散列函数加密


使用最多的是sha256,sha512,hmac



md5不再推荐使用,推荐使用sha-2



单向散列函数特点

1.输出值的数据长度不变
2.相同的输入输出也必定相同
3.输入相似的数据,输出也大不相同
4.输入完全不同的数据,输出相同的哈希值会以极低的概率出现

单向散列函数的使用

openssl dgst
options are
-c to output the digest with separating colons
-r to output the digest in coreutils format
-d to output debug info
-hex output as hex dump
-binary output in binary form
-hmac arg set the hmac key to arg
-verify file verify a signature using public key in file
-prverify file verify a signature using private key in file
-keyform arg key file format (pem or engine)
-out filename output to filename rather than stdout
-signature file signature to verify
-sigopt nm:v signature parameter
-hmac key create hashed mac with key
-mac algorithm create mac (not neccessarily hmac)
-md4 to use the md4 message digest algorithm
-md5 to use the md5 message digest algorithm
-ripemd160 to use the ripemd160 message digest algorithm
-sha to use the sha message digest algorithm
-sha1 to use the sha1 message digest algorithm
-sha224 to use the sha224 message digest algorithm
-sha256 to use the sha256 message digest algorithm
-sha384 to use the sha384 message digest algorithm
-sha512 to use the sha512 message
$ cat test.txt | openssl dgst -sha256 -hex -out hash.txt

生成随机数


随机数的作用

1. 生成密钥: 用于对称密码和消息认证码
2. 生成密钥对:用于公钥密码和数字签名
3. 生成初始化向量(iv):用于分组密码的cbc,cfb和ofb模式
4. 生成nonce, 用于防御重放攻击以及分组密码的ctr模式等
5. 生成盐,用于基于口令的密码(pbe)等

生成随机数

openssl rand [option] 字节数
where options are
-out file - write to file
-engine e - use engine e, possibly a hardware device.
-rand file:file:... - seed prng from files
-base64 - base64 encode output
-hex - hex encode output
$ openssl rand -hex 1
$ openssl rand -base64 10 -out a.txt

生成口令密钥


一般基于口令的密钥为了防止字典攻击会使用一串随机数加入单向散列函数


openssl passwd
usage: passwd [options] [passwords]
where options are
-crypt standard unix password algorithm (default)
-1 md5-based password algorithm
-apr1 md5-based password algorithm, apache variant
-salt string use provided salt
-in file read passwords from file
-stdin read passwords from stdin
-noverify never verify when reading password from terminal
-quiet no warnings
-table format output as table
-reverse switch table columns
$ openssl passwd -salt 123

生成密钥对


首先使用genrsa生成私钥,然后在使用rsa从私钥中提取公钥


openssl genrsa
usage: genrsa [args] [numbits]
-des encrypt the generated key with des in cbc mode
-des3 encrypt the generated key with des in ede cbc mode (168 bit key)
-idea encrypt the generated key with idea in cbc mode
-seed
encrypt pem output with cbc seed
-aes128, -aes192, -aes256
encrypt pem output with cbc aes
-camellia128, -camellia192, -camellia256
encrypt pem output with cbc camellia
-out file output the key to 'file
-passout arg output file pass phrase source
-f4 use f4 (0x10001) for the e value
-3 use 3 for the e value
-engine e use engine e, possibly a hardware device.

$ openssl genrsa -out rsa.key 2048
//生成公钥
$ openssl rsa -in rsa.key -pubout -out rsa-public.key

证书


对证书所发布的公钥进行权威的认证,证书可以有效的避免中间人攻击的问题


1. pkc:public-key certificate,公钥证书,简称证书。
2. ca:certification authority,认证机构。对证书进行管理,负责 1.生成密钥对、2. 注册公钥时对身份进行认证、3. 颁发证书、4. 作废证书。其中负责注册公钥和身份认证的,称为 ra(registration authority 注册机构)
3. pki:public-key infrastructure,公钥基础设施,是为了更高效地运用公钥而制定的一系列规范和规格的总称。比较著名的有pkcs(public-key cryptography standards,公钥密码标准,由 rsa 公司制定)、x.509 等。pki 是由使用者、认证机构 ca、仓库(保存证书的数据库)组成。
crl:certificate revocation list 证书作废清单,是 ca 宣布作废的证书一览表,会带有 ca 的数字签名。一般由处理证书的软件更新 crl 表,并查询证书是否有效。
4.证书的编码格式:pem,der

证书的申请签署步骤

image

1. 生成申请请求
2. ra验证
3. ca签署
4. 获取证书
(1)创建所需要的文件
touch /etc/pki/ca/index.txt 生成证书索引数据库文件
echo 01 > /etc/pki/ca/serial 指定第一个颁发证书的序列号
(2)ca自签证书
(1)生成私钥
cd /etc/pki/ca/
(umask 066; openssl genrsa -out
/etc/pki/ca/private/cakey.pem 2048)
(2)生成自签名证书
openssl 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; openssl 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签署证书,并将证书颁发给请求者
openssl ca -in /tmp/test.csr –out
/etc/pki/ca/certs/test.crt -days 365
注意:默认国家,省,公司名称三项必须和ca一致
d 查看证书中的信息:
openssl x509 -in /path/from/cert_file -noout
-text|issuer|subject|serial|dates
openssl ca -status serial 查看指定编号的证书状态
(4) 吊销证书
a 在客户端获取要吊销的证书的serial
openssl x509 -in /path/from/cert_file -noout
-serial -subject
b 在ca上,根据客户提交的serial与subject信息,对比检验是
否与index.txt文件中的信息一致,吊销证书:
openssl ca -revoke /etc/pki/ca/newcerts/serial.pem
c 指定第一个吊销证书的编号
注意:第一次更新证书吊销列表前,才需要执行
echo 01 > /etc/pki/ca/crlnumber
d 更新证书吊销列表
openssl ca -gencrl -out /etc/pki/ca/crl/crl.pem
查看crl文件:
openssl crl -in /etc/pki/ca/crl/crl.pem -noout -text


推荐阅读
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • 进入配置文件目录:[rootlinuxidcresin-4.0.]#cdusrlocalresinconf查看都有哪些配置文件:[rootlinuxid ... [详细]
  • 【技术分享】一个 ELF 蠕虫分析
    【技术分享】一个 ELF 蠕虫分析 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • Sleuth+zipkin链路追踪SpringCloud微服务的解决方案
    在庞大的微服务群中,随着业务扩展,微服务个数增多,系统调用链路复杂化。Sleuth+zipkin是解决SpringCloud微服务定位和追踪的方案。通过TraceId将不同服务调用的日志串联起来,实现请求链路跟踪。通过Feign调用和Request传递TraceId,将整个调用链路的服务日志归组合并,提供定位和追踪的功能。 ... [详细]
  • 现在比较流行使用静态网站生成器来搭建网站,博客产品着陆页微信转发页面等。但每次都需要对服务器进行配置,也是一个重复但繁琐的工作。使用DockerWeb,只需5分钟就能搭建一个基于D ... [详细]
  • 如何搭建服务器环境php(2023年最新解答)
    导读:本篇文章编程笔记来给大家介绍有关如何搭建服务器环境php的相关内容,希望对大家有所帮助,一起来看看吧。本文目录一览:1、怎么搭建p ... [详细]
  • 本文介绍了brain的意思、读音、翻译、用法、发音、词组、同反义词等内容,以及脑新东方在线英语词典的相关信息。还包括了brain的词汇搭配、形容词和名词的用法,以及与brain相关的短语和词组。此外,还介绍了与brain相关的医学术语和智囊团等相关内容。 ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • IT方面的论坛太多了,有综合,有专业,有行业,在各个论坛里混了几年,体会颇深,以前是论坛哪里人多 ... [详细]
author-avatar
如梦幻般的童心_900
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有