Openssl生成证书流程

Openssl生成证书流程
偶然想到在内网配置https,就梳理了下利用openssl与ca生成证书的过程。
生成过程分为服务端跟客户端,这里我在一台上测试。
一.介绍
CA是Certificate Authority的缩写,也就是认证中心。
CA的功能有:颁发证书,更新证书,撤销证书和验证证书,相当于公安局的户籍部门。
CA证书的作用是作身份认证。
数字证书认证过程:
×××办理过程: 带上户口本-》当地派出所-》签发证书-》你去领证书
×××办理过程: 带上户口本(证明你合法)-》当地派出所(认证机构)-》签发证书(审核有效信息)-》你去领证书。
客户得到CA证书的流程如下:

CSR文件根据客户端的公钥和主机标识生成,主机标识包括国家,省区,县市,组织,邮箱,主机名等信息。用户在拿到数字证书后,用浏览器中的CA的公钥解开证书,得到客户端的标识,从而确认身份

二.搭建
1.必备软件openssl,查看是否已安装
[[email protected] conf]# rpm -qf which openssl
openssl-1.0.1e-48.el6_8.3.x86_64
2.配置自己的CA认证中心。生成CA的根证书和私钥,根证书包括CA的公钥
修改openssl配置文件[[email protected] conf]# vim /etc/pki/tls/openssl.cnf
修改如下
#basicConstraints=CA:FALSE
basicConstraints=CA:TRUE设置使用本地为CA认证中心。
[[email protected] conf]# /etc/pki/tls/misc/CA -h
usage: /etc/pki/tls/misc/CA -newcert|-newreq|-newreq-nodes|-newca|-sign|-verify
选项 :
-newcert 新证书
-newreq 新请求
-newreq-nodes 新请求节点
-newca 新的CA证书
-sign 签证
-verify 验证
[[email protected] conf]# /etc/pki/tls/misc/CA -newcert
Generating a 2048 bit RSA private key
.+++
...........................................................................................................................+++
writing new private key to ‘newkey.pem‘
Enter PEM pass phrase:输入保护秘钥文件的密码
Verifying - Enter PEM pass phrase:

You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.‘, the field will be left blank.

Country Name (2 letter code) [XX]:CH
State or Province Name (full name) []:hubei
Locality Name (eg, city) [Default City]:wuhan
Organization Name (eg, company) [Default Company Ltd]:ayu
Organizational Unit Name (eg, section) []:ayu
Common Name (eg, your name or your server‘s hostname) []:ayu
Email Address []:[email protected]
Certificate is in newcert.pem, private key is in newkey.pem
[[email protected] certificate]# ll
总用量 8
-rw-r--r--. 1 root root 1350 3月 20 00:50 newcert.pem
-rw-r--r--. 1 root root 1834 3月 20 00:50 newkey.pem
可以看到已经生成两个文件,一个为根证书(公钥),一个为秘钥。
3.客户端认证文件准备
[[email protected] certificate_keys]# openssl genrsa -des3 -out server.key
Generating RSA private key, 1024 bit long modulus
.............++++++
................++++++
e is 65537 (0x10001)
Enter pass phrase for server.key:输入私钥密码
Verifying - Enter pass phrase for server.key:
生成客户端私钥秘钥文件,des3是保护私钥的密码的加密算法
生成客户端的认证请求文件
[[email protected] certificate_keys]# openssl req -new -key server.key -out server.csr
Enter pass phrase for server.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.‘, the field will be left blank.

Country Name (2 letter code) [XX]:CH 这些信息与CA的主机标识相同,否则认证会出错
State or Province Name (full name) []:hubei
Locality Name (eg, city) [Default City]:wuhan
Organization Name (eg, company) [Default Company Ltd]:ayu
Organizational Unit Name (eg, section) []:ayu
Common Name (eg, your name or your server‘s hostname) []:ayu
Email Address []:[email protected]

Please enter the following ‘extra‘ attributes
to be sent with your certificate request
A challenge password []:不输入密码
An optional company name []:不输入密码
[[email protected] certificate_keys]# ll
总用量 8
-rw-r--r--. 1 root root 668 3月 20 01:23 server.csr
-rw-r--r--. 1 root root 963 3月 20 01:18 server.key
生成的csr文件即根据私钥文件生成的包含公钥的请求文件
4.CA认证请求证书
[[email protected] certificate_keys]# openssl ca -keyfile /root/certificate/newkey.pem -cert /root/certificate/newcert.pem -in server.csr -out server.crt
Using configuration from /etc/pki/tls/openssl.cnf
Enter pass phrase for /root/certificate/newkey.pem:
/etc/pki/CA/index.txt: No such file or directory
unable to open ‘/etc/pki/CA/index.txt‘
140602402772808:error:02001002:system library:fopen:No such file or directory:bss_file.c:398:fopen(‘/etc/pki/CA/index.txt‘,‘r‘)
140602402772808:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:400:
出现报错
此时需要做以下操作
[[email protected] certificate_keys]# touch /etc/pki/CA/index.txt
[[email protected] certificate_keys]# echo 01 > /etc/pki/CA/serial
[[email protected] certificate_keys]# openssl ca -keyfile /root/certificate/newkey.pem -cert /root/certificate/newcert.pem -in server.csr -out server.crt
Using configuration from /etc/pki/tls/openssl.cnf
Enter pass phrase for /root/certificate/newkey.pem:
Check that the request matches the signature
Signature ok
Certificate Details:
Serial Number: 1 (0x1)
Validity
Not Before: Mar 20 05:37:46 2018 GMT
Not After : Mar 20 05:37:46 2019 GMT
Subject:
countryName = CH
stateOrProvinceName = hubei
organizationName = ayu
organizationalUnitName = ayu
commonName = ayu
emailAddress = [email protected]
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
00:4C:C6:86:B4:EF:88:51:FC:DB:59:C7:D8:32:20:08:81:7A:4B:D8
X509v3 Authority Key Identifier:
keyid:8A:41:B4:0B:50:11:DC:27:24:A8:29:E6:3B:5A:D1:AB:66:29:3A:EC

Certificate is to be certified until Mar 20 05:37:46 2019 GMT (365 days)
Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
[[email protected] certificate_keys]# ll
总用量 12
-rw-r--r--. 1 root root 3747 3月 20 01:37 server.crt
-rw-r--r--. 1 root root 668 3月 20 01:23 server.csr
-rw-r--r--. 1 root root 963 3月 20 01:18 server.key
创建成功。
测试https配置是否成功
在nginx配置问价加上以下字段
listen 443 ssl;
ssl_certificate /usr/local/nginx/conf/certificate_keys/server.crt;
ssl_certificate_key /usr/local/nginx/conf/certificate_keys/server.key;

重启nginx,测试访问:

原文地址:http://blog.51cto.com/dorebmoon/2090392

时间: 2024-10-06 16:45:05

Openssl生成证书流程的相关文章

windows下使用openssl生成证书

一:下载 使用的是0.9.8 1:openssl下载,http://www.openssl.org/source/ 2:安装vs2010,并安装 3:下载perl,http://www.activestate.com/ActivePerl,并安装. 二:安装openssl 1:解压到系统盘C:\openssl-0.9.8v 2.配置WIN32环境 打开CMD命令行,进入C:\openssl-0.9.8v目录,执行命令 perl Configure VC-WIN32 注意区分大小写 3.进入VC

使用 openssl 生成证书

转自:http://www.cnblogs.com/littleatp/p/5878763.html 使用 openssl 生成证书 一.openssl 简介 openssl 是目前最流行的 SSL 密码库工具,其提供了一个通用.健壮.功能完备的工具套件,用以支持SSL/TLS 协议的实现.官网:https://www.openssl.org/source/ 构成部分 密码算法库 密钥和证书封装管理功能 SSL通信API接口 用途 建立 RSA.DH.DSA key 参数 建立 X.509 证书

再也不用“‘“使用OpenSSL生成证书”了

在百度中搜索“使用OpenSSL生成证书”,百度为您找到相关结果约74,500个,还有这么多人在找免费SSL证书,还用OpenSSL生成自签证书吗? 沃通的在线宣传要加强呀!多少站长众里寻她千百度,多少夜挑灯奋站,只为这张能支持所有浏览器的免费的SSL证书: 沃通免费SSL证书支持所有浏览器.服务器.移动终端,无需注册,10分钟颁发. 下面分享一下经验. 1.首先,移步这里快速申请网址:https://buy.wosign.com/QuickToApplyFreeSSL.html.全中文,不用注

使用OpenSSL生成证书

Step 1. Create key (password protected) openssl genrsa -out prvtkey.pem 1024/2038                     (with out password protected)    openssl genrsa -des3 -out prvtkey.pem 1024/2048    (password protected) 这个命令会生成一个1024/2048位的密钥. Step 2. Create cert

Apache OpenSSL生成证书使用

最近在学习SSL协议,这次是基于Apache服务器自带的openssl来实现的 TLS:传输层安全协议 SSL:安全套接字层 KEY:私钥 CSR:证书签名请求,即公钥,生成证书时需要将此提交给证书机构,生成 X509 数字证书前,一般先由用户提交证书申请文件,然后由 CA 来签发证书 CRT:即证书,一般服务器证书server.crt和客户端证书client.crt都需要通过CA证书ca.crt进行签名 1.进行CA签名获取证书时,需要注意国家.省.单位需要与CA证书相同,否则会报:     

如何利用OpenSSL生成证书

此文已由作者赵斌授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 一.前言 最近为了测试内容分发网络(Content Delivery Network,简称 CDN)添加的新功能,支持HYTTPS安全加速功能,需要对证书的有效性进行验证,于是乎需要自己生成合法的.非法的.过期的证书.接下来介绍下如何通过OpenSSL生成证书. 二.使用OpenSSL生成证书 创建证书密钥文件 openssl genrsa -des3 -out ca.key 8192 运行时会提示输入密码

openssl生成证书

目标是生成服务器证书(证书链是ca根 → abc).在win10安装OpenSSL-Win64测试如下: 生成根 openssl genrsa -out c:\t\ca.key 2048 --生成私钥 openssl req -x509 -new -nodes -key c:\t\ca.key -subj "/CN=qq.com/OU=department/O=CorpName/L=beijing/ST=Haidian/C=CN" -days 36500 -out c:\t\ca.ce

Linux下使用openssl生成证书

利用OpenSSL生成库和命令程序,在生成的命令程序中包括对加/解密算法的测试,openssl程序,ca程序.利用openssl,ca可生成用于C/S模式的证书文件以及CA文件. 证书文件的生成步骤: 一.服务器端1.生成服务器端的私钥(key文件); openssl genrsa -des3 -out server.key 1024 运行时会提示输入密码,此密码用于加密key文件(参数des3是加密算法,也可以选用其他安全的算法),以后每当需读取此文件(通过openssl提供的命令或API)都

openssl 生成证书基本原理

摘自:http://blog.csdn.net/oldmtn/article/details/52208747 1. 基本原理 公司一个项目要进行交易数据传输,因为这个项目银行那边也是刚刚开始启动,所有的支持只有一个传输字段的说明文档,好吧,总的有人做事不是嘛,于是接口开发正式展开,第一步的难点就是加密解密,我选择使用OpenSSL. OpenSSL初接触的人恐怕最难的在于先理解各种概念 公钥/私钥/签名/验证签名/加密/解密/非对称加密 我们一般的加密是用一个密码加密文件,然后解密也用同样的密