openssl软件包在安装之后,主要会生成三段重要内容:加密库

ssl相关库文件

openssl命令行工具

下面就来介绍一下openssl命令行工具的使用:

openssl和yum类似,有着许许多多的子命令:

如果要获得这些子命令的相关man文档,先使用whatis查看一下确定使用man的格式语法

其中常用的子命令有:

1.enc:实现对称加密,解密的命令

使用格式:openssl enc ciphername -a [-e] [-salt] -in filename -out filename

例如:openssl enc -des3 -a -in /etc/issue -out /root/issue.des3

-a:使用base64编码

-e:加密,默认行为,可以省略

ciphername:加密算法名称

-d:解密(使用格式相同)

2.dgst:实现提取数据指纹的命令

使用格式:openssl dgst [-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1] [-out filename]

例如:openssl dgst -MD5 /etc/login.defs将该文件的数据指纹使用MD5算法提取出输出至屏幕

其他实现提取数据指纹的命令:md5sum filename

sha1sum filename

sha*sum filename

3.rand:生成随机数的命令

使用格式:openssl rand [options] num

例如:openssl rand -base64 9(随便写的数字)生成随机数

可以使用-out 保存至文件

4.genrsa:生成私钥的命令(rsa算法。dsa算法的是gendsa)

使用格式:openssl genrsa [-out filename][-des] [-des3] [numbits]

例如:openssl genrsa -out /root/cacert.key 2048

生成一个长度为2048的私钥保存至指定文件,也可以使用-des等选项加密存放

5.rsa:从私钥中提取公钥的命令

使用格式:openssl rsa -in filename -pubout 

从名为filename的私钥文件中提取公钥,可以使用输出重定向的方式保存,也可以使用选项保存

6.x509:用于查看证书内容的命令

使用格式:openssl x509 -text -in filename(证书)

7.req:用于生成证书签署请求或者自签证书的命令

使用格式:a.生成自签证书:

openssl req -new -x509 -key /path/to/private.key -out /path/to/cacert.pem

b.生成证书签署请求

openssl req -new -key /path/to/private.key -out /path/to/cacert.csr

8.ca:certificate authority 用于签署证书请求的命令

使用格式:openssl ca -in /path/to/cacert.csr -out /path/to/cacert.crt

如何在redhat系统上创建私有CA:

1.创建一对密钥

2.生成自签署证书

在redhat系统上,使用rpm包格式安装openssl会生成/etc/pki/等一系列目录以及文件

/etc/pki/tls/openssl.cnf定义了CA的工作目录,以及其中应该具有的文件

a.在/etc/pki/CA/private/目录下生成私钥,应保存为文件名为cakey.pem的文件(该名称可通过修改上述配置文件的值改变)

如图,生成2048位的私钥,保存为指定文件名,注意,应该将权限修改为最小权限

为了避免出错,我们将/etc/pki/tls/openssl.cnf中的CA相关定义截图出来:

所以private-key应该命名为cakey.pem。并放在指定目录下

b.生成自签署的证书,由配置文件定义,可知应保存在/etc/pki/CA目录下,命名为cacert.pem

openssl req -new -x509 -key ./private/cakey.pem -out cacert.pem

在使用req子命令的时候,-x509表示自签署证书

-key用于指定私钥

-out用于保存证书

c.根据/etc/pki/tls/openssl.cnf中【CA_default】段的相关定义在/etc/pki/CA目录下创建相关文件

至此,CA(certificate authority)创建完毕,可以为其他人签署证书请求了

当收到证书请求时,签署办法

openssl ca -i/path/to/cacert.csr -out /path/to/cacert.crt

转载于:https://blog.51cto.com/10764546/1704612

openssl工具的使用以及创建私有CA相关推荐

  1. 加密解密技术基础及用OpenSSL创建私有CA

    1.加密解密技术基础 (1)进程通信 传输层协议有TCP,UDP,SCTP等,端口号port表示进程地址,进程向内核注册独占使用某端口. 同一主机上的进程间通信方式:进程间通信(IPC), 消息队列( ...

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

    本文大纲: 1.为什么网络通信要进行数据加密? 2.数据加密方式有哪些?它们是如何进行加密的? 3.通信中是如何进行数据加密传输的? 4.https方式进行数据传输的具体流程 5.SSL 的实现工具O ...

  3. openssl 创建私有CA

    创建私有CA: openssl的配置文件:/etc/pki/tls/openssl.cnf 1.创建所需要的文件 #touch index.txt #echo 01 > serial # 2.给 ...

  4. openssl创建私有ca

    openssl创建私有ca 1.ssl大概内容 PKI:公钥基础设施结构 CA:证书权威机构,PKI的核心 CRL:证书吊销列表,使用证书之前需要检测证书有效性 证书存储格式常见的X509格式 包含内 ...

  5. Openssl加密文件及创建私有CA及证书

    # cat /etc/redhat-release CentOS release 6.6 (Final) # uname -r 2.6.32-504.el6.x86_64 首先我们先演示加密文件的方式 ...

  6. 创建私有CA及私有CA的使用

    CA分为公共信任CA和私有CA,若想使用公共信任的CA需要很多的money,如果想要在有限范围内使用CA认证方式,可以自己创建一个.下面了解一下CA及其创建方法: CA的配置文件为 /etc/pki/ ...

  7. linux加密解密基础、PKI及SSL、创建私有CA

    linux加密解密基础.PKI及SSL.创建私有CA 1.加密解密基础:            数据在网络中传输过程中要保证三个要点: (1)数据的完整性:防止数据在传输过程中遭到未授权用户的破坏或篡 ...

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

    一.数据加密和解密概述 数据加密和解密是一门历史悠久的技术,从古代就已经出现了,一直发展到当代.其中,数据加密的目的有很多,可以是为了保证本地数据存取的安全性,可以是为了保证数据流在网络传输过程中的保 ...

  9. 自签名证书和私有CA签名的证书的区别 创建自签名证书 创建私有CA 证书类型 证书扩展名

    自签名的证书无法被吊销,CA签名的证书可以被吊销 能不能吊销证书的区别在于,如果你的私钥被黑客获取,如果证书不能被吊销,则黑客可以伪装成你与用户进行通信 如果你的规划需要创建多个证书,那么使用私有CA ...

最新文章

  1. 谁是谁的first-child
  2. [Qt入门]QMainWindow创建
  3. 小程序如何传数组数据到vs后台中
  4. python 遍历对象_python js对象的遍历
  5. 兄弟3150cdn更换硒鼓_耗材知多点:一体式硒鼓及分离式硒鼓
  6. 数据膨胀了?你的数仓又没有空间了?
  7. CTO五种基本的必备素质
  8. 计算机平面设计论文范,计算机平面设计论文关于计算机平面设计中汉字艺术论文范文参考资料...
  9. 数组模拟加法(每日一练 11.30)
  10. 试验笔记 - Eclipse的.class反编译插件
  11. Excel 2007中的新文件格式
  12. Params属性的用法 (beginner)
  13. 2022 老A卡密验证系统
  14. 从文本中提取单词生成单词本
  15. 一起来学k8s 37.二进制k8s集群etcd备份和恢复
  16. 【友情链接】吊打我的巨佬们
  17. 澳洲计算机设计专业大学排名,澳洲设计专业大学排名TOP5
  18. [数据采集笔记04]——网页解析——lxml、bs4、正则
  19. Building Maintainable Software-java篇之Separate Concerns in Modules
  20. Python分布式爬虫实战 - 豆瓣读书

热门文章

  1. 【theano-windows】学习笔记十——多层感知机手写数字分类
  2. WIX(20121031) 应用设置默认变量
  3. 基于Python语言使用RabbitMQ消息队列(一)
  4. java生成首字母拼音简码的总结
  5. rabbitmq队列的exclusive,durability,auto-delete属性以及消息可靠传输设计
  6. jquery 滚动条位置的
  7. Android成长日记-使用GridView显示多行数据
  8. Finished yeah!
  9. 用js做分页,点击下一页时,直接跳到了最后一页——Number()的妙用
  10. 项目打包部署到Tomcat