linux下创建CA以及颁发证书
一、创建私有CA:
使用工具openssl模拟创建CA
Openssl程序包分解:
Openssl由三部分组成:加密库libcrypt、服务器端实现ssl功能会话的库、命令行工具
Openssl工具使用详解:
#rpm -ql openssl
第一个功能库:libctypto:主要用来实现加密解密,一些用来实现加密解密的程序,有可能都要调用到libcrypto库,加密解密程序库会被众多应用程序所依赖;来完成ssl会话;一般默认安装完系统之后就会被默认安装,因为libctypto会被众多的
第二个功能库:libssl:实现ssl功能
/usr/bin/openssl多用途的命令行程序
httpd,有个模块叫做mod_ssl,支持https的功能模块
#openssl version//显示版本
openssl是一个具有许多子命令的命令,是一个多用途、多功能的工具;
常用选项:
OPTIONS
-in filenamethe input filename, standard input by default. -out filenamethe output filename, standard output by default.
使用openssl加密解密:
# cp /etc/fstab ./ # cat fstab -n
# openssl enc -des3 -in fstab -e -out fstab.des3 # file fstab.des3
# cat fstab.des3 -n
删除fstab,再解密还原为原来的文件
# rm -i fstab # openssl enc -des3 -d -in fstab.des3 -out fstab # cat -n fstab
解密只需逆序操作即可,似乎只需要输入一次密码即可:
Openssl加密格式:加密解密共两个命令
单项加密都是调用dgst算法
#openssl ? #man dgst
信息摘要算法的巨大特性就是雪崩效应
使用算法提取特征码:
# openssl dgst -md5 fstab # openssl dgst -hex -md5 fstab #md5sum fstab
雪崩效应实验
# vim fstab # openssl dgst -hex -md5 fstab
[root@Cenetos ~]# vim fstab//对里面内容随便修改一下,哪怕只是增加了一个空格而已
# openssl dgst -md5 -hexfstab
雪崩效应直接导致特征码已经完全变了模样,其实上面只是在里面添加了个空格而已!如果把原来的空格删除即可恢复原来的特征码哦!
无论使用哪个计算工具,只要使用的算法是相同的,那么,得到的结果一定是相同的。如下
[root@Cenetos ~]# md5sum fstab
4cf50b14ab7d08d99acace901fb78860 fstab
[root@Cenetos ~]# openssl dgst -md5 fstab
MD5(fstab)= 4cf50b14ab7d08d99acace901fb78860
# openssl dgst -sha1 fstab等同# sha1sum fstab
测试当前主机CPU支持加密算法的速度,速度测试工具 # openssl speed des-ede3
不带任何参数的speed对上面所支持的算法统统测试一遍
#man sslpasswd
生成随机数种子: # openssl passwd -1 salt 11111111
注:红帽6.4默认已经不再是基于MD5,默认是基于sha512,只不过openssl不支持罢了。
如何随机得到八位的字符串呢?
Openssl专门生成随机数的命令rand
随机数
命令格式:生成随机数种子: #openssl rand -base64 num #openssl rand -hex num
如何生成私钥:
#openssl genrsa
# openssl genrsa 521 # openssl genrsa
既然可以输出到屏幕上,那就重定向到某个文件里面了。 # openssl genrsa 2048 > mykey.pki
# cat mykey.pki //即可得到私钥
私钥是至关重要的,不能随意让别人看到的,那私钥可以加密吗?私钥加密
#man genrsa
对私钥加密指定算法加密,一般有下面几项:
# openssl genrsa -des3 1024
私钥已经有了?那么公钥从何处来呢?(rsa)
如何提取公钥: [root@Cenetos ~]# openssl rsa -in mykey.pki -pubout
writing RSA key -----BEGIN PUBLIC KEY----- MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvimkPZzgpvhTpJAu+4x2 bgrnmD1QxQOoIbxe52bcZEG01wJpWUgL4odL7iPCwJEjDmRaP6zVA3qnHp8kV15j frpEQplRoxgiOUaohCAGxL15Dgt4zl5VXoLtYs8R9O3B//SJgce4IJwkQZjJ9B84 beVa1zbszUTC5KEjzOa1Rl2ScVEEBU0DBaFSFvOx1D2soICQL6O+lB0dRohHN+GR uKXxp6s/E360jkLpUbLqZM5D1HArMLcItGJ/ynhA3OQEbXPGdGr+Mjb+LkZnb7Iw uy+03iDpNG80kdGCM2/PwL0H0OmItKRKRbxtR0jAhffwuAfptRx15hE/PZ4AjiYM q3RLP7uG4lF3+LDZgDe0H+R7sTCnwgJZHOX469et+HnZDlTLSVR8JIAm9Dk/s3wF xrbvcvtdyVYFBu15DTzt22aKu1QGkKQmAhCvJDJkWMOEUQSYo1uXijPpwNJ75eCR j1u+XbvP1vi3nXZEDBKzE11pN76t7vkAynj8O+Pfk+QE5DJ7mSjxG36hZfGAb7xU 4nhTVaf4m/S40mLTAK2yud0o4UFqfw7ixHqgg5ijD/wl++pBwaujUxiZYoJeT0/f Gn2UvCu5Sl/k4UmYbg4dQHYVEWeFd4bhb76J0rX6F3IHvhamO1wI657zyJG/pUss 1u/YbmWM0NRGiDTdQsDhMTECAwEAAQ== -----END PUBLIC KEY-----
[root@Cenetos ~]# cat mykey.pki
-----BEGIN RSA PRIVATE KEY----- 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 -----END RSA PRIVATE KEY-----
以上就是私钥与之对应的公钥
查看私钥文件的默认权限
注:创建完之后要修改密钥的权限,或直接使用如下命令
# (umask 077; openssl genrsa -out /root/mykey2.pki 2048) # ll /root/mykey2.pki
证书请求的过程
证书中包含的是什么?主要就是拥有者自身的属性信息,公钥以及CA的签名,其核心其实就是用户的公钥。也就意味着用户要想去CA那里申请一个证书,该如何去申请呢?
一个证书的组成部分既包含用户的公钥又包含用户实体的名称,ID号等各种属性信息,在验证证书合法性的时候最重要的就是名称。
证书请求签署过程:
1、自己生成一个私钥;
2、(从私钥中把公钥提取出来,并附加上个人信息)制作一个证书签署请求;
3、由CA负责签署证书
# openssl req -new -key mykey.pki -out /test/mykeyreq.csr
-new:制作一个证书申请;
-k:指定私钥文件位置;
-out:把证书申请保存为什么文件;
后缀:req文件格式的后缀名一般保存为*.csr,一般来讲都以此后缀名作为证书申请;
以下就是填写个人信息了哦:
各字段注释:
1、Country Name (2 letter code) [XX]:CN两个字符的国家代码,且只能是两个字符,这里填入CN;
2、State or Province Name (full name) []:Henan州或者省份的名字,这里填入Henan;
3、Locality Name (eg, city) [Default City]:默认所在的城市,这里填入Zhengzhou;
4、Organization Name (eg, company) [Default Company Ltd]:公司名称,默认为有限公司,这里填入Magedu;
5、Organizational Unit Name (eg, section):所在部门的名称,这里填入Tech;
6、Common Name (eg, your name or your server's hostname)
关键的一项,用户在访问时输入访问网站的名称;两种情况,若使用域名访问则此处给出的是域名;若是使用IP地址访问,则给出的是ip地址;一定要保持一致哦!一般设置的都是FQDN。假如此处填入www.magedu.com;
7、Email Address []:管理员邮箱地址,这里填入magedu@admin.com
后面两项根据实际需要填写即可
如何自建CA
2、由CA负责签署证书 如何自建CA?
使用openssl可以模拟自建CA,需要准备前提条件
1)为CA生成一个私钥
# cd /etc/pki/CA/ # ls # pwd # (umask 077; openssl genrsa -out private/cakey.pem 2048) # ls -l private/cakey.pem
2)生成自签证书:
# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3656
# touch serial index.txt # echo 01 > serial # ls -lh
3)签署证书:
# openssl ca -in myreq.csr -out mycert.crt -days 3656
转载于:https://blog.51cto.com/hanqiancheng/1282690
linux下创建CA以及颁发证书相关推荐
- Linux下openSSL安装并颁发证书
转载,原文出处:https://www.cnblogs.com/zgxblog/p/13696139.html 一.openssl检查安装 1.查看系统是否安装:openssl version -a ...
- linux下利用openssl来实现证书的颁发(详细步骤)--转载和修改
原文地址:http://www.cnblogs.com/firtree/p/4028354.html linux下利用openssl来实现证书的颁发(详细步骤) 1.首先需要安装openssl,一个开 ...
- Centos7创建CA和申请证书
转载:http://rackie386.blog.51cto.com/11279229/1947999 Centos7.3创建CA和申请证书 openssl 的配置文件:/etc/pki/tls/op ...
- linux下搭建CA认证
我们知道,当客户端与服务器端建立会话之前,首先是客户端发送请求,只有通过TPC/IP三次握手后,客户端与服务器端才能建立ssl会话.握手的过程简单的说也可以总结为三个步骤,第一步:客户端和服务器双方共 ...
- 加密解密概述及openssl应用及其创建CA和签发证书的实现
数据非常重要,这是大家的共识,为了保证数据的安全,就会涉及到加密及其解密,本文主要介绍加密 解密相关概念及其在Linux平台下加密解密的具体实现openssl基础,及openssl创建CA和签发证书: ...
- Linux下创建硬链接,文件访问为空,提示:xxxx: 符号连接的层数过多
Linux下创建软链接|硬链接,文件访问为空,提示:x x x: 符号连接的层数过多. 原因:创建符号链接的时候未使用绝对路径,无论是源文件路径还是目标路径,都需要使用绝对路径. 如: ln -s / ...
- linux下创建具有root权限的账户
linux下创建具有root权限的账户 http://blog.chinaunix.net/uid-24631445-id-2981034.html posted on 2013-11-01 20:3 ...
- Linux下创建用户、切换用户、删除用户
Linux下创建用户: useradd tooker #创建用户tooker passwd tooker #给用户tooker设置密码,如果没有设置密码该用户不能用 useradd -g users ...
- linux 下创建文件的方法
linux 下创建文件的方法 touch aaa.txt 创建一个叫aaa.txt的文件 echo "" >> aaa.txt 创建一个叫aaa ...
最新文章
- 终于等到你:CYQ.Data V5系列 (ORM数据层)最新版本开源了
- BZOJ 4720: [Noip2016]换教室
- 好消息,关于2005的default provider
- linux gpt分区看不到,Linux无法看到我的任何分区 – 备份GPT表不在磁盘的末尾
- 三元函数的几何图形一般是_多元函数微分学_高等数学习题与答案_doc_大学课件预览_高等教育资讯网...
- Python:如何安装与使用 pip
- 误差理论实际应用公式
- 国人魔改后的中文优化版资源管理器,终于解决我多年的难题
- miniusbpcb封装_USB接口封装及定义大全,不用去翻手册了
- Cisco ❀ QinQ技术与VXLAN技术的区别
- 《那些年啊,那些事——一个程序员的奋斗史》——41
- AR技术与VR技术有什么区别呢?
- oracle chr 49824,Systemy sprzętowo-programowe | Oracle Polska
- 通报批评!985博导把审稿的文章拒了后当成自己的文章投!国家自然科学基金委通报批评...
- 一份完整的app产品运营推广方案,app推广运营的方法(一)
- BRD文件转AD文件
- Lesson 018 —— python 集合
- 微凉的风吹着我凌乱的头发,突然决定开个客博,以录下从MATLAB到OMNET的艰难历程
- 顶象特别策划 | 2022双十一业务安全保卫战即日启动
- tracker服务器
热门文章
- 笔记本重置找不到恢复环境_win10重置此电脑恢复环境找不到要如何处理
- 你人生中的那口井挖了没有?(转潇湘隐者)
- 计算机启动老是检测硬盘怎么解决,开机出现硬盘检测是怎么回事 硬盘检测的解决方法...
- RPG角色生成器(C++)
- symbian与uiq开发教程之一-初识symbian(转)
- 【工具】百度网盘视频类资源下载新思路,轻松优雅解决下载限速方法
- Oracle connect by与level的使用
- Symantec Backup Exec部署手册
- C#调用斑马打印机打印条码标签(支持COM/LPT/USB/ZPL/EPL/Bitmap)
- KEYSIGHT示波器 MSO-X 3024A 简单操作说明