文档章节

使用openssl生成自签证的certificate

龙飞在天
 龙飞在天
发布于 2016/08/12 00:59
字数 995
阅读 139
收藏 2

第一步:先建立一个 CA 的证书

首先为 CA 创建一个 RSA 私用密钥,

[root@rocketcnvm ssl]#openssl genrsa -des3 -out ca.key 1024

系统提示输入 PEM pass phrase,也就是密码,输入后牢记它。

生成 ca.key 文件,将文件属性改为400,并放在安全的地方。

[root@rocketcnvm ssl]#chmod 400 ca.key

你可以用下列命令查看它的内容,

[root@rocketcnvm ssl]# openssl rsa -noout -text -in ca.key

利用 CA 的 RSA 密钥创建一个自签署的 CA 证书(X.509结构)

[root@rocketcnvm ssl]#openssl req -new -x509 -days 3650 -key ca.key -out ca.crt

然后需要输入下列信息:

Country Name: cn 两个字母的国家代号

State or Province Name: An Hui 省份名称

Locality Name: Bengbu 城市名称

Organization Name: Family Network 公司名称

Organizational Unit Name: Home 部门名称

Common Name:distinguish  name

Email Address: sunstorm@263.net Email地址

生成 ca.crt 文件,将文件属性改为400,并放在安全的地方。

[root@rocketcnvm ssl]#chmod 400 ca.crt

你可以用下列命令查看它的内容,

[root@rocketcnvm ssl]#openssl x509 -noout -text -in ca.crt

用下面的命令也可以生成没有密码保护的CA密钥和证书文件:

[root@rocketcnvm ssl]#openssl req -new -x509 -out ca.crt -keyout ca.key

想给CA密钥加密码保护可以:

[root@rocketcnvm ssl]#openssl res -des3 -in ca.key -out ca.key.new

[root@rocketcnvm ssl]#mv ca.key.new ca.key

第二步:下面要创建服务器证书签署请求,

首先为你的 Apache 创建一个 RSA 私用密钥:

[root@rocketcnvm ssl]#openssl genrsa -des3 -out server.key 1024

这里也要设定pass phrase。

生成 server.key 文件,将文件属性改为400,并放在安全的地方。

[root@rocketcnvm ssl]#chmod 400 server.key

你可以用下列命令查看它的内容,

[root@rocketcnvm ssl]#openssl rsa -noout -text -in server.key

用 server.key 生成证书签署请求 CSR.

[root@rocketcnvm ssl]#openssl req -new -key server.key -out server.csr

这里也要输入一些信息,和生成ca.crt的信息类似

至于 'extra' attributes 不用输入。

“Common Name: Chen Yang 你的姓名”这条信息请你输入你的服务器的域名或者IP地址,

你可以查看 CSR 的细节

[root@rocketcnvm ssl]#openssl req -noout -text -in server.csr

第三步:下面可以签署证书了

[root@rocketcnvm ssl]#openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key

就可以得到server.crt。

将文件属性改为400,并放在安全的地方。

[root@rocketcnvm ssl]#chmod 400 server.crt

检查私钥是否于证书匹配,可以使用如下命令进行对比:四 其它

[root@rocketcnvm ssl]# openssl rsa -noout -modulus -in ca.key | openssl md5

Enter pass phrase for ca.key:

86e24bf0156116c4f6617a8d980b3acd

[root@rocketcnvm ssl]# openssl x509 -noout -modulus -in ca.crt | openssl md5

86e24bf0156116c4f6617a8d980b3acd


补充

在CentOS6.3环境下,openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key,无法生效。改成openssl x509 -days 3650 -req -in server.csr -signkey server.key -out server.crt即可

上面生成的证书有效期为10年(呵呵太长了点,一般三年就行了)

这时证书的相关文件就都已经生成好了。当前文件夹下应该有server.crt、server.csr、server.key这三个文件。

如果你是个完美论者,理所当然应该把文件丢到证书的“官方目录”中去,省的把文件胡乱放置以后找不着:

[root@www ~]# mv server.crt /etc/pki/tls/certs/

[root@www ~]# mv server.key /etc/pki/tls/private/

最后仅仅需要修改配置文件来指定证书路径:

找到如下一节:

# Server Certificate:
# Point SSLCertificateFile at a PEM encoded certificate. If
# the certificate is encrypted, then you will be prompted for a
# pass phrase. Note that a kill -HUP will prompt again. A new
# certificate can be generated using the genkey(1) command.
SSLCertificateFile /etc/pki/tls/certs/server.crt

# Server Private Key:
# If the key is not combined with the certificate, use this
# directive to point at the key file. Keep in mind that if
# you’ve both a RSA and a DSA private key you can configure
# both in parallel (to also allow the use of DSA ciphers, etc.)
SSLCertificateKeyFile /etc/pki/tls/private/server.key

另外,在/etc/httpd/conf.d/ssl.conf里面将SSLPassPhraseDialog builtin修改为

SSLPassPhraseDialog exec:/etc/httpd/key.sh

编辑:/ect/apache2/key.sh

#!/bin/bash

echo ‘your pass phrase’ //在单引号里输入你的Server.key的密码

注意key.sh的权限755

重启Apache服务

这样每次启动apache时都可以不需要输入Server.key的密码了。

本文转载自:http://www.ryuhi.com/blog/2009/03/20/archives/207

龙飞在天
粉丝 2
博文 78
码字总数 0
作品 0
杭州
高级程序员
私信 提问
Linux openssh openssl

Linux openssh openssl 笔记日期20180524 目录 openssh 配置ssh基于密钥的方式认证 服务器端配置文件 ssh服务的最佳实践 OpenSSL 三个组件 PKI: Public Key Infrastructure 建立私有CA 证书申...

Winthcloud
2018/06/29
0
0
openssl的应用及创建CA

openssl命令行工具: 众多的子命令实现各种安全加密功能; ]# openssl ? 显示的内容有 Standard commands(标准命令) enc, dgst, ca, req, genrsa, rand, rsa, x509, passwd, ... Message Di...

Vayne36
2018/06/26
0
0
Linux 第32天 openssl 私有CA

Linux 第32天 openssl 私有CA 时间: 20180821 目录 OpenSSL 常见的加密算法和协议 一次加密通信过程 数字证书 Openssl命令 使用Openssl构建私有CA OpenSSL SSL (Secure Socket Layer)安全的套...

Winthcloud
2018/08/23
0
0
openssl的应用及私有CA相关内容

以CA为核心生成的一套安全架构体系我们称之为: PKI:Public Key Infrastructure,公钥基础设施;其包含的内容: 1.签证机构:CA 2.证书注册机构:RA 3.证书吊销列表:CRL 4.证书存取库:CR ...

狐狸和鳄鱼
2018/06/26
0
0
自建证书实践(OpenSSL)

常用排序之快速排序 问题描述 原材料 加工过程 --- 问题描述 证书要钱还贵,但金融系统报文必须要进行安全传输,怎么办,自己生成证书吧,这篇博客记录的背景是: 生成一对 RSA 钥匙,公钥采用...

范老司
2015/06/05
2.2K
3

没有更多内容

加载失败,请刷新页面

加载更多

iOS苹果应用IPA一键签名工具及重签教程

开心签名工具,是一款跨平台ios签名和重签名工具。 同时支持在windows、linux、mac运行,数据同步,方便使用及管理! 开心重签名工具官网 功能特点 1、支持图形界面及命令行重签(部署到服务...

tintong
8分钟前
2
0
2.4G有源卡核心芯片供应商

有源2.4G RFID的防盗标签,在与无源标签相比较,通信距离远,通信时效高。我司的SI24R2E这颗芯片专门为2.4G有源标签而设计,具有低功耗,发送距离远,厂商设计简单等优势;广泛应用于现在城市...

文刀石
13分钟前
2
0
设置Ubuntu16.04启动为命令行界面

1. 修改/etc/default/grub文件,将GRUB_CMDLINE_LINUX_DEFAULT设置成”quiet splash 3” 2. 使用命令update-grub使得在/boot下重新生成GRUB2配置文件。 3. 重启...

JosiahMg
14分钟前
2
0
C++基础知识点

计算机语言 计算机不能理解高级语言,只能理解机器语言,必须要将高级语言翻译成机器语言,翻译的方式有两种,一种是编译,一种是解释 解释型语言,在运行程序时进行翻译,每个语句在执行时逐...

大瑞清_liurq
20分钟前
2
0
EFCore 多条数据更新不能同时savechanges()的解决方法

1 在ModelContext定义下增加var transaction = ctx.Database.BeginTransaction(); 1.2 在最后一个SaveChanges()后增加transaction.Commit(); 3 在finally的if (sMsgCode != "")分支中增加tra......

_Somuns
24分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部