openssl创建CA、申请证书及其给web服务颁发证书

一、创建私有的CA

1)查看openssl的配置文件:/etc/pki/tls/openssl.cnf

2)创建所需的文件

touch /etc/pki/CA/index.txt echo 01 >/etc/pki/CA/serial

3)CA自签证书生成私钥

cd /etc/pki/CA

(umask 066;openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)

4)生成自签名证书

openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -days 7300 -out /etc/pki/CA/cacert.pem

-new:生成新的证书签署请求

-x509:专用CA生成自签证书

-key:生成请求时用到的私钥文件

-days n:证书的有限期

-out /path/to/somecertfile:证书的保存路径

代码演示:

二、颁发及其吊销证书

1)颁发证书,在需要使用证书的主机生成证书请求,给web服务器生成私钥(本实验在另一台主机上)

(umask 066;openssl genrsa -out /etc/httpd/ssl/httpd.key 2048)

2)生成证书申请文件

openssl req -new-key /etc/httpd/ssl/httpd.key -days 365 -out /etc/httpd/ssl/httpd.csr

3)将证书文件传给CA,CA签署证书并将证书颁发给请求者,注意:默认国家、省和公司必须和CA一致

openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365

4)查看证书中的信息

opessl x509 -in /path/from/cert_file -noout -text|sbuject|serial|dates

5)吊销证书,在客户端获取要吊销的证书的serial

openssl x509 -in /PATH/FROM/CERT_FILE -noout -serial -subject

6)在CA上,根据客户提交的serial与subject信息,对比检验 是否与index.txt文件中的信息一致吊销证书

openssl ca -revoke /etc/pki/CA/newcerts/ SERIAL.pem

7)生成吊销证书的编号(第一次吊销一个证书时才需要执行)

echo 01 > /etc/pki/CA/crlnumber

8)更新证书吊销列表,查看crl文件

openssl ca -gencrl -out /etc/pki/CA/crl/ca.crl

openssl crl -in /etc/pki/CA/crl/ca.crl -noout -text

9)安装mod_ssl模块并修改/etc/httpd/conf.d/ssl.conf配置文件

DocumentRoot "/web/pma"

ServerName www.chen.net:443

<Directory "/web/pma">

AllowOverride All

Options None

require all granted

</Directory>

SSLCertificateFile /etc/httpd/ssl/httpd.crt

SSLCertificateFile /etc/httpd/ssl/httpd.key

图示:

授权目录

10)测试

openssl s_client [-connect host:port] [-cert filename] [-CApath directory] [-CAfile filename]

实例:

openssl s_client -connect www.chen.net:443 -CAfile /etc/pki/CA/cacert.pem

curl --cacert /etc/pki/CA/cacert.pem https://www.chen.net/

实现图示:

代码演示:

不同主机之间拷贝文件小技巧:

在使用ssh远程登录时提示:remote host indentification has changed!则需清除~/.ssh/known_hosts文件即可,因为系统检测出rsa钥匙发生了改变。清除此配置文件重连。

作者:小耳朵

来源:http://purify.blog.51cto.com/10572011/1856060

本文分享自微信公众号 - 马哥Linux运维(magedu-Linux)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-01-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java学习网

分析学习HTTPS和HTTP的区别

分析学习HTTPS和HTTP的区别  首先谈谈什么是HTTPS:   HTTPS(Secure Hypertext Transfer Protocol)安全超...

270100
来自专栏FreeBuf

BlackHat议题解析:Windows程序的数字签名校验“漏洞”

* 本文原创作者:维一零,本文属FreeBuf原创奖励计划,未经许可禁止转载 在今年的黑帽大会上,国外的一个安全研究员展示了如何通过Windows的数字签名by...

34770
来自专栏草根博客站长有话说

HTTPS 要比 HTTP 多用多少服务器资源?

HTTP 访问,用户只需要完成 TCP 三次握手,建立 TCP 连接就能够直接发送 HTTP 请求,获取应用层数据。而 HTTPS=HTTP+SSL,也就是说 ...

15540
来自专栏派森公园

SSH的工作原理

29640
来自专栏腾讯云数据库团队的专栏

SQL Server 数据加密功能解析

通常来讲,数据加密分为对称加密和非对称加密。SQL Server 就使用了折中的方法,所以SQL Server 加密功能包含2个部分:数据加密和密钥管理。本文将...

2.6K10
来自专栏中国白客联盟

[预警]openssl再爆漏洞了,官方建议禁用SSLv2

CVE-2016-0703 1.Drown漏洞是什么? DROWN出了一个严重的漏洞影响HTTPS和其他依赖SSL和TLS的服务,SSL和TLS协议保证用户上...

47070
来自专栏前端儿

HTTPS 概述

HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议 它是一个安全通信通道,它基于HTTP开发,用于在客户计算机...

27920
来自专栏FreeBuf

安全科普:HTTPS初探

* 本文作者:HPT @Dragon团队,本文属FreeBuf原创奖励计划,未经许可禁止转载 本篇主要为大家带来的是HTTPS的内容,相信大家已经从各种途径看过...

21580
来自专栏吴伟祥

https和http有何区别? 原

  HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议 它是一个安全通信通道,它基于HTTP开发,用于在客户计...

10820
来自专栏blackheart的专栏

[信息安全] 3.HTTPS工作流程

0. 简单回顾 在前面两篇博客中介绍了密码相关的一些基本工具,包括(对称密码,公钥密码,密码散列函数,混合密码系统,消息认证码码,数字签名,伪随机数,数字证书)...

29850

扫码关注云+社区

领取腾讯云代金券