Linux中阶—加密库OpenSSL(四)
在使用OpenSSL命令创建证书前,可查看配置文件/etc/pki/tls/openss.conf文件,查看该文件定义了的证书存放位置及名称。
一、server生成证书文件。
1、生成私钥:openssl genrsa -out server.key 2048
2、查看私钥内容:openssl rsa -noout -text -in server.key
3、使用私钥生成证书基本概要:openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=Jiangxi/L=Nanchang/O=vihoo/OU=QITU/CN=www.qitu.com"(或者使用-config openssl.cnf模板创建概要)
4、查看概要内容:openssl req -noout -text –in server.csr #概要信息包含:1S0国家代码(两位字符)、所在省份、所在城市、公司名称、部门名称、SSL证书的域名、公钥等
5、如果交给权威机构来做,我们只需要提交server.csr与相关费用就好了,下面我们使用自建的CA颁发证书。
二、自建CA认证生成数字证书。
首先为CA提供所需的目录及文件,并指明证书的开始编号:
mkdir -pv /etc/pki/CA/{certs,crl,newcerts}
touch /etc/pki/CA/{serial,index.txt}
echo 01 > /etc/pki/CA/serial
#随后生成私钥,注意私钥的文件名及其存放的位置,需与配置文件中相匹配:
1、生成私钥:openssl genrsa -out ca.key 2048
2、使用私钥生成证书基本概要:openssl req -new -key ca.key -out ca.csr -subj "/C=CN/ST=Jiangxi/L=Nanchang/O=vihoo/OU=QITU/CN=www.ca.com"
3、通过证书概要生成根证书(包含CA 公钥信息):openssl x509 -req -in ca.csr -signkey ca.key -out ca.crt -days 3650(如果是权威机构,会将证书内置浏览器、或者开源的SDK中,我们自己创建的,浏览器会提示证书不可信任,需要自己手动点击信任与安装证书。)
4、使用根证书与根私钥加密 server的证书基本概要,生成server证书:openssl ca -in server.csr -cert ca.crt -keyfile ca.key -out server.crt -days 3650
三、client生成证书文件(双向认证前提下使用)。
openssl genrsa -out client.key 2048
openssl req -new -key client.key -out client.csr
openssl ca -days 3650 -cert ca.crt -keyfile ca.key -in client.csr -out client.crt
四、生成pem格式证书:
有时需要用到pem格式的证书,可以用以下方式合并证书文件(crt)和私钥文件(key)来生成
cat client.crt client.key> client.pem
cat server.crt server.key > server.pem
五、查看证书信息
查看证书详情:openssl x509 -in server.crt -text -noout
查看证书部分信息:openssl x509 -in /etc/pki/CA/server.crt -noout -serial -dates -subject
-noout:不输出加密的证书内容;
-serial:输出证书序列号;
-dates:显示证书有效期的开始和终止时间;
-subject:输出证书的subject;
通过私钥生成公钥:openssl rsa -in server.key -pubout -out server_public.key
通过证书提取公钥:openssl_master x509 -in server.crt -pubkey –noout > server_public.key
上一篇:Linux中阶—日志归档logroutate(三)
下一篇:Linux中阶—超文本加密协议https(五)
Linux中阶—加密库OpenSSL(四)相关推荐
- Linux中的动态库和静态库(.a/.la/.so/.o)
为什么80%的码农都做不了架构师?>>> Linux中的动态库和静态库(.a/.la/.so/.o) Linux中的动态库和静态库(.a/.la/.so/.o) C/C++程序 ...
- 在Linux中创建静态库和动态库 (转)
我们通常把一些公用函数制作成函数库,供其它程序使用.函数库分为静态库和动态库两种.静态 库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库.动态库在程序编译时并不会被连接到目标代码中,而 ...
- 在Linux中创建静态库.a和动态库.so
转自:http://www.cnblogs.com/laojie4321/archive/2012/03/28/2421056.html 在Linux中创建静态库.a和动态库.so 我们通常把一些公用 ...
- Linux中阶—域名解析服务DNS(十)
全局配置文件:/etc/named.conf //单行注释类型 /* 多行注释 */ //声明控制通道 key "rndc-key" { algorithm h ...
- Linux中阶—文件服务vsftpd (九)
vsftpd服务安装: yum -y install vsftpd* yum -y install pam* libdb -utils libdb* --skip-broken 软件结构如下: ...
- Linux中C语言标准库glibc源码下载
在这篇文章理清gcc.libc.glibc.libc++.libstdc++的关系,我们大概理解了libc,glibc之间的一些关系. 下面我们就开了解一些Linux中C语言标准库glibc源码. 在 ...
- 两个开发源码加密库openssl和cryptlib的比较
[openssl资源] 作者:Eric Yang等 官方网站:http://www.openssl.org 中文网站推荐:http://gdwzh.126.com 当前版本: openssl-0.9. ...
- PHP成为首个在内核中嵌入加密库的编程语言
PHP团队最近投票一致通过了"将Libsodium库集成到PHP内核中"的决议,使得PHP成为首个使用公认现代加密库的编程语言. Libsodium是个便捷,可交叉编译,现代化,易 ...
- linux下终端urvst,Linux中的静态库与动态库
#什么是库文件? 库文件是事先编译好的方法的合集.比如:我们提前写好一些数据公式的实现,将其打包成库文件,以后使用只需要库文件就可以,不需要重新编写. #Linux系统中: 1.静态库的扩展名为.a: ...
最新文章
- 华中农大津田賢一组招植物微生物组、生物信息方向博士后
- Microbiome:重新定义“卫生”的概念
- python修改电脑名称_修改计算机名称
- python装饰器 property_Python中@property装饰器的使用技巧性解析(代码示例)
- Hadoop Kerberos 认证下 Sentry 安装 + Sentry 权限设置使用
- JAVA多线程(一)线程安全问题产生的原因
- jenkins手把手教你从入门到放弃01-jenkins简介
- 【写作技巧】毕业论文写作意义
- 【RLchina第六讲】Imitation Learning
- 吐血推荐HZHControls:我见过最美的Winform控件库
- 【锐捷交换】交换机MSTP+VRRP配置
- 题解 P1004 【方格取数】
- Liunx最全最常用的命令-初学者专属
- Python爬虫系列之某了么h5签名sign算法
- 广州大学计算机学院谢冬青杀人案,广州大学6.29故意杀人案细节披露:谢冬青因怀疑被举报而杀人...
- html中样式里面有符号,css样式 + 特殊符号
- Java编写 随机对数组赋值
- java将链接生成二维码工具类
- extjs 数字校园-云资源平台 2014.2.4-班级座位表
- 查找算法的实现c语言,查找算法的实现(C语言版)
热门文章
- Input 输入调出数字输入
- java接口自动化监控_java接口自动化(三) - 手工接口测试到自动化框架设计之鸟枪换炮...
- uni-app获取手机当前连接的WIFI名称
- 赛效:Xmind思维导图怎么用 新手使用教程分享
- 一别西湖,又是江南烟雨
- 格子广告+php,GitHub - liujijun95/easy-amazon-advertising: 基于 amazon advertising v2 接口的 PHP 广告信息组件...
- Turbo Autoencoder: Deep learning based channel code for point-to-point communication channels
- csgo机器人队友_csgo打人机去掉己方人机 | 手游网游页游攻略大全
- 以不变应万变的客服代表,让服务体验持续提升
- python通过经纬度在地图标点_只要两步,用Python将地址标记在地图上!