在使用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(四)相关推荐

  1. Linux中的动态库和静态库(.a/.la/.so/.o)

    为什么80%的码农都做不了架构师?>>>    Linux中的动态库和静态库(.a/.la/.so/.o) Linux中的动态库和静态库(.a/.la/.so/.o) C/C++程序 ...

  2. 在Linux中创建静态库和动态库 (转)

    我们通常把一些公用函数制作成函数库,供其它程序使用.函数库分为静态库和动态库两种.静态 库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库.动态库在程序编译时并不会被连接到目标代码中,而 ...

  3. 在Linux中创建静态库.a和动态库.so

    转自:http://www.cnblogs.com/laojie4321/archive/2012/03/28/2421056.html 在Linux中创建静态库.a和动态库.so 我们通常把一些公用 ...

  4. Linux中阶—域名解析服务DNS(十)

    全局配置文件:/etc/named.conf //单行注释类型 /*   多行注释 */ //声明控制通道 key "rndc-key" {         algorithm h ...

  5. Linux中阶—文件服务vsftpd (九)

    vsftpd服务安装: yum -y install vsftpd* yum -y install pam* libdb -utils libdb* --skip-broken 软件结构如下: ​ ​ ...

  6. Linux中C语言标准库glibc源码下载

    在这篇文章理清gcc.libc.glibc.libc++.libstdc++的关系,我们大概理解了libc,glibc之间的一些关系. 下面我们就开了解一些Linux中C语言标准库glibc源码. 在 ...

  7. 两个开发源码加密库openssl和cryptlib的比较

    [openssl资源] 作者:Eric Yang等 官方网站:http://www.openssl.org 中文网站推荐:http://gdwzh.126.com 当前版本: openssl-0.9. ...

  8. PHP成为首个在内核中嵌入加密库的编程语言

    PHP团队最近投票一致通过了"将Libsodium库集成到PHP内核中"的决议,使得PHP成为首个使用公认现代加密库的编程语言. Libsodium是个便捷,可交叉编译,现代化,易 ...

  9. linux下终端urvst,Linux中的静态库与动态库

    #什么是库文件? 库文件是事先编译好的方法的合集.比如:我们提前写好一些数据公式的实现,将其打包成库文件,以后使用只需要库文件就可以,不需要重新编写. #Linux系统中: 1.静态库的扩展名为.a: ...

最新文章

  1. 华中农大津田賢一组招植物微生物组、生物信息方向博士后
  2. Microbiome:重新定义“卫生”的概念
  3. python修改电脑名称_修改计算机名称
  4. python装饰器 property_Python中@property装饰器的使用技巧性解析(代码示例)
  5. Hadoop Kerberos 认证下 Sentry 安装 + Sentry 权限设置使用
  6. JAVA多线程(一)线程安全问题产生的原因
  7. jenkins手把手教你从入门到放弃01-jenkins简介
  8. 【写作技巧】毕业论文写作意义
  9. 【RLchina第六讲】Imitation Learning
  10. 吐血推荐HZHControls:我见过最美的Winform控件库
  11. 【锐捷交换】交换机MSTP+VRRP配置
  12. 题解 P1004 【方格取数】
  13. Liunx最全最常用的命令-初学者专属
  14. Python爬虫系列之某了么h5签名sign算法
  15. 广州大学计算机学院谢冬青杀人案,广州大学6.29故意杀人案细节披露:谢冬青因怀疑被举报而杀人...
  16. html中样式里面有符号,css样式 + 特殊符号
  17. Java编写 随机对数组赋值
  18. java将链接生成二维码工具类
  19. extjs 数字校园-云资源平台 2014.2.4-班级座位表
  20. 查找算法的实现c语言,查找算法的实现(C语言版)

热门文章

  1. Input 输入调出数字输入
  2. java接口自动化监控_java接口自动化(三) - 手工接口测试到自动化框架设计之鸟枪换炮...
  3. uni-app获取手机当前连接的WIFI名称
  4. 赛效:Xmind思维导图怎么用 新手使用教程分享
  5. 一别西湖,又是江南烟雨
  6. 格子广告+php,GitHub - liujijun95/easy-amazon-advertising: 基于 amazon advertising v2 接口的 PHP 广告信息组件...
  7. Turbo Autoencoder: Deep learning based channel code for point-to-point communication channels
  8. csgo机器人队友_csgo打人机去掉己方人机 | 手游网游页游攻略大全
  9. 以不变应万变的客服代表,让服务体验持续提升
  10. python通过经纬度在地图标点_只要两步,用Python将地址标记在地图上!