CentOS6系统openssl生成证书和自签证书的过程,记录一下,本文基于CentOS 6 64bit。
$ yum install openssl openssl-devel

1,生成服务器端的私钥(key文件)
$ openssl genrsa -des3 -out server.key 1024

此时会提示输入密码(PEM pass phrase,必须输入),此密码用于加密key文件(参数des3便是指加密算法)。
以后每当需读取此文件(通过openssl提供的命令或API)都需输入密码(PEM pass phrase)。例如把key文件引入Nginx等第三方软件配置https,在启动Nginx的时候同样会要求输入密码。
如果觉得不方便,也可以去除这个密码,但一定要采取其他的保护措施
去除key文件的密码:openssl rsa -in server.key -out server.key

2,生成Certificate Signing Request(CSR)
$ openssl req -new -key server.key -out server.csr -config /etc/pki/tls/openssl.cnf

生成的csr文件交给CA签名后形成服务端自己的证书。屏幕上将有提示,依照其指示一步一步输入要求的个人信息即可
Country Name (2 letter code) [XX]:CN           #国家名称(2个字母代码)[某某]:
State or Province Name (full name) []:GD        #国家或省名称(全称)[ ]:广东
Locality Name (eg, city) [Default City]:GZ    #地点名称(例如,城市)[默认城市]
Organization Name (eg, company) [Default Company Ltd]:SZuniversity    #机构名称(如公司)[公司]
Organizational Unit Name (eg, section) []:SZunivertiy                               #组织单位名称(如部分)
Common Name (eg, your name or your server's hostname) []:xxx  #常见的名字(例如,您的姓名或您的服务器的主机名)[ ]   ,在浏览器选择证书的时候显示的名字
Email Address []:test@qq.com                                         #邮箱,随便填

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:                   #不填
An optional company name []:               #不填

3,对客户端也作同样的命令生成key及csr文件
$ openssl genrsa -des3 -out client.key 1024   #如果服务端去掉了密码,这里也要去掉
$ openssl req -new -key client.key -out client.csr -config /etc/pki/tls/openssl.cnf

4,生成CA文件
CSR文件必须有CA的签名才可形成证书,可将此文件发送到verisign等地方由它验证(需要收费),这里我们自己制作一个CA
$ openssl req -new -x509 -keyout ca.key -out ca.crt -config /etc/pki/tls/openssl.cnf

5,用生成的CA的证书为刚才生成的server.csr和client.csr文件签名
$ touch /etc/pki/CA/index.txt
$ echo "00" > /etc/pki/CA/serial
$ openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config /etc/pki/tls/openssl.cnf
$ openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key -config  /etc/pki/tls/openssl.cnf

client使用的文件有:ca.crt,client.crt,client.key
server使用的文件有:ca.crt,server.crt,server.key
.crt文件和.key可以合到一个文件里面,

将客户端证书文件client.crt和客户端证书密钥文件client.key合并成客户端证书安装包client.pfx
openssl pkcs12 -export -in client.crt -inkey client.key -out client.pfx

可能出现的错误:
1,执行第5步使用CA证书为csr文件签名的时候,提示
failed to update database
TXT_DB error number 2
解决办法:
$ rm -rf /etc/pki/CA/index.txt
$ touch /etc/pki/CA/index.txt

CentOS6系统openssl生成证书和自签证书的更多相关文章

  1. https学习笔记三----OpenSSL生成root CA及签发证书

    在https学习笔记二,已经弄清了数字证书的概念,组成和在https连接过程中,客户端是如何验证服务器端的证书的.这一章,主要介绍下如何使用openssl库来创建key file,以及生成root C ...

  2. OpenSSL生成root CA及签发证书

    一.openssl 简介 openssl 是目前最流行的 SSL 密码库工具,其提供了一个通用.健壮.功能完备的工具套件,用以支持SSL/TLS 协议的实现.官网:https://www.openss ...

  3. linux中openssl生成证书和自签证书

    1.首先要生成服务器端的私钥(key文件): 命令: openssl genrsa -des3 -out server.key 1024 运行时会提示输入密码,此密码用于加密key文件(参数des3便 ...

  4. 用openssl生成含有中文信息的证书

    openssl 支持 ASCII 和 UTF-8 两种编码,应该可以制作中文证书. 在生成证书签发申请时,当输入中文则 openssl 报错,这是因为当前输入的字符是 ANSI 本地编码格式,超出了 ...

  5. OpenSSL生成证书详解 如何使用OpenSSL生成自签证书 转载

    原文:http://my.oschina.net/fajar/blog/425478 使用OpenSSL生成自签证书(亲测) 一,前言 读过我博客的小伙伴儿都知道,我一般在前言里面会提到为什么写这篇博 ...

  6. openssl 生成证书上 grpc 报 legacy Common Name field, use SANs or temporarily enable Common Name matching with GODEBUG=x509ignoreCN=0

    最近用传统的方式 生成的证书上用golang 1.15. 版本 报 grpc 上面 ➜ ~ go version go version go1.15.3 darwin/amd64 上面调用的时候报错了 ...

  7. openssl生成CA签署 及 加密解密基础

    openssl  生成私有CA 及签署证书 openssl 配置文件: /etc/pki/tls/openssl.cnf 1. 在openssl CA 服务器端生成私钥 cd /etc/pki/CA/ ...

  8. OPENSSL生成SSL自签证书

    OPENSSL生成SSL自签证书 目前,有许多重要的公网可以访问的网站系统(如网银系统)都在使用自签SSL证书,即自建PKI系统颁发的SSL证书,而不是部署支持浏览器的SSL证书. 支持浏览器的SSL ...

  9. [证书服务器 第二篇] 基于OpenSSL 在 CentOS6 系统上 搭建自签证书服务,并应用于Web容器

    第一部分:概述 .. 第二部分:环境准备 1 操作系统 CentOS 6.x 2 安装openssl yum install -y openssl 3 安装jdk 从官网下载JDK http://ww ...

随机推荐

  1. 通过SQL Server 2008数据库复制实现数据库同步备份

    SQL Server 2008数据库复制是通过发布/订阅的机制进行多台服务器之间的数据同步,我们把它用于数据库的同步备份.这里的同步备份指的是备份服务器与主服务器进行 实时数据同步,正常情况下只使用主 ...

  2. qsort库函数的用法

    qsort 功 能: 使用快速排序例程进行排序  用 法: void qsort(void *base, int nelem, int width, int (*fcmp)(const void *, ...

  3. nodeJS环境

    nodeJS官网:https://nodejs.org/en/,  npm官网(node package manager):https://www.npmjs.com/ 进入nodejs官方网站下载软 ...

  4. android 多线程下载

    看代码: public class MainActivity extends AppCompatActivity { private final String TAG = MainActivity.c ...

  5. leetcode-javascript

    1. Largest Number For example, given [3, 30, 34, 5, 9], the largest formed number is 9534330. // wro ...

  6. offer

    八月份仿真实验室国赛以后,我并没有开始做一些关于找工作的准备,而是在做自己感兴趣的cocos2d-x,大概花了一个星期的时间从安装平台到查资料写了一个flappybird小游戏,将近开学了才把找工作的 ...

  7. Exhange上添加IMAP4

    1.登录到Exchange admim Center,选择servers,双击servers名称,选择IMAP4 2.服务器上查看任务管理器中的服务器,找到exchange imap4两个服务器是否开 ...

  8. c#轻松实现磁性窗口

    /// <summary>/// 磁性窗体函数/// </summary>/// <param name="form">窗体控件(一般传this ...

  9. 提高你css技能的css开发技巧(转载)

    一.resize实现图片对比 resize的语法如下: resize:none | both | horizontal | vertical 案例效果如下图 (鼠标移到左下角白色区域,往右侧拖动,实现 ...

  10. DIOCP之编写第一个应用程序(一)

    Server 设计功能如下: 1.支持客户端登录 2.连接数据库进行操作 3.推送信息 4.限制文件上传大小 第一步:创建一个VCL-Forms Application(创建一个标准VCL程序) 第二 ...