私有CA服务器的搭建

openssl是实现ssl协议的应用程序,可以使用yum install -y openssll来安装,构建私有CA之前先来了解openssl的使用;

openssl的主配置文件:/etc/pki/tls/openssl.cnf

[CA_default]

dir:CA的主目录

certs:已颁发证书的存储位置

crl_dir:已吊销证书的存储位置

database:证书索引文件

new_certs_dir:新颁发证书的存储位置

certificate:CA证书文件

serial:证书颁发时的当前序列号

crlnumber:吊销证书的当前序列号

crl:当前使用的CRL

private_key:CA私钥

RANDFILE:私有随机数生成器文件

私有CA作为单位或组织内部多台主机验证身份使用,不在互联网上起作用,是基于ssl协议利用openssl搭建的,openssl私有CA使用的x.509的证书,构建私有CA分为CA服务器操作和客户机操作。

1、构建私有CA

a、私有CA服务器生成私钥

[[email protected] CA]# (umask 077; openssl genrsa
-out private/cakey.pem 2048) 命令解释

括号():在当前shell的zishell中执行

umask
077:设定默认umask,这样生成的证书权限就是600,除了root用户其他用户均没有操作权限;

genrsa:生成私钥命令

-out:输出文件,后面是私钥输出的路径名字

2048:加密位数

b、生成自签署证书

req子命令:生成PKCS#10格式的证书签署请求

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

-key /path/to/private_key_file:私钥文件路径;

-daysn:证书有效时长;

-out /path/to/request_file: 生成的证书请求文件路径;

x509:专用于CA生成自签署证书时;

-newkey rsa:NUM  无需事先专门生成私钥文件,而是生成请求时直接生成私成私钥,并提取公钥用于证书;也就是说上面a步骤可以不执行,而直接使用此命令直接生成私钥并签署;

在给服务器签署证书的时候需要和此处的位置和公司内容保持一致,因为这是一个私有CA,是属于这个公司,只能签署这个公司内部的服务器;

[[email protected] CA]# touch ./{index.txt,serial}

[[email protected] CA]# echo 01 > serial

生成索引文件和序号,这里需要手动添加序号01,以后再签署证书时就不用了;

2、给节点服务器发放证书

私有CA服务器上面已经构建好了,开始为内部服务器发放证书

此处是以http服务器为例,证书位置为/etc/httpd/conf/certs/

a、http服务器生成私钥

和上面CA服务生成私钥的方法一样;

             b、生成私钥之后,要想让CA签署需要生成证书签署请求;

密码可以留空,这样证书签署请求就已经生成,需要私有CA服务器签署;

c、把请求文件发送给CA

scp httpd.csr CA服务器IP:路径(例如:172.16.100.1:/tmp)

d、私有CA服务器签署证书:此处是在CA服务器上进行

签署时会显示证书的详细信息,会有两次确认是否签署,直接y就可以签署;这样这书就            已经签署好了;

此时查看CA服务器索引文件会发现已经多了一条,正是签署的那台服务器的证书

             e、将签署好的证书发送给服务器

scp /tmp/httpd.src  http服务器IP:路径(例如:172.16.100.2:/etc/httpd/conf/certs)

此时证书已经签署好了,如果客户端想通过https访问,则需要去CA服务器下载CA服务器的   正式,  具体的认证过程:客户端通过https访问时,服务器会将自己的证书发送给客户端,客户端   根据下载的CA证书中的公钥解密服务器的证书的数字签名,如果和证书中描述的信息符合,则证   明来源正确,再通过单向加密算法,提取http服务器的证书文件的特征码,对比CA证书中的记录,      如果符合则说明证书没有被篡改,再次验证http服务器主体信息与服务器地址是否相同,相同则会  将信任http服务器。

[[email protected] certs]# openssl x509 -in httpd.crt -noout -subject

查看证书主体信息

[[email protected] certs]# openssl x509 -in httpd.crt -noout -serial

查看证书序列号

[[email protected] certs]# openssl x509 -in httpd.crt -noout -text

查看证书文本信息

3、证书吊销

服务器不使用了,证书需要吊销,以免出现安全问题;

a、获取要吊销证书的序列号serial,利用上面的命令可以查看

b、CA服务器操作

1、根据证书持有者提交的serial和subject信息来与index.txt数据库文件中的信息是否一致;

2、吊销证书

3、生成吊销证书的编号(如果是第一次吊销)

[[email protected] CA]# echo 01 > /etc/pki/CA/crlnumber

4、更新证书吊销列表

[[email protected] CA]# cd crl

[[email protected] crl]# openssl ca -gencrl -out thisca.crl

此时我们再来查看index.txt文件

之前的V已经变成R了,说明序列号为01的证书已经时吊销状态了

4、私有CA的构建以及给服务器签署、吊销证书过程就是这样子,有什么不对的地方诚心希望指出。

时间: 2024-10-19 16:32:34

私有CA服务器的搭建的相关文章

openssl原理的初步理解与私有CA服务器的建立

加密算法主要分为对称加密算法和对称加密算法 一.对称加密算法的原理:使用相同的密钥进行加密运算的算法就是对称加密算法       加密过程(内容-->对称加密-->加密后的内容)       解密过程(加密内容-->对称加密方式-->解密后的内容)       优点与特点:速度块 加密相对安全 加密紧凑:缺点是不能用于大规模使用,会随参与人数的正佳而映像密钥的存储和管理,不支持数字签名和不可否认性   二.  非堆成加密的原理:非对称算法需要每个参与者产生一对密钥,且将公钥共享到服

搭建私有CA服务器

1.CA是什么 CA(Certificate Authority)证书颁发机构主要负责证书的颁发.管理以及归档和吊销.证书内包含了拥有证书者的姓名.地址.电子邮件帐号.公钥.证书有效期.发放证书的CA.CA的数字签名等信息.证书主要有三大功能:加密.签名.身份验证. 2.搭建CA服务器 2.1 生成秘钥 [[email protected] CA]# cd /etc/pki/CA/ #切换到CA目录 [[email protected] CA]# (umask 077; openssl genr

CA服务器的搭建和申请证书

目的:搭建一个CA服务器并给客户机授权认证 准备: ?? 1. 一台linux操作系统(以centos7虚拟机为例) ?? 2. 准备一台客户机(centos6虚拟机) 先上一张思维导图吧. 步骤 一.CA服务器创建. ?? 1. CA服务器我们用centos7来建立,先申请该服务器的私钥,注意路径,我们要把文件放在/etc/pki/CA/private下 ?? 2. 利用刚刚建立好的私钥生成自签名证书,注:CA的证书是自己给自己签名的. ?? 查看自签名证书??导入到windows系统中修改后

Linux系统搭建私有CA证书服务器

一.CA简介 CA是什么?CA是Certificate Authority的简写,从字面意思翻译过来是凭证管理中心,认证授权.它有点类似我们生活中的身份证颁发机构,这里的CA就相当于生活中颁发身份证的机构.不同于生活中的颁发机构,这里的CA是给服务器颁发证书.颁发证书的目的同生活中的办理身份证的目的类似,都是为了证明一件事,生活中的身份证可以证明我们是一个合法的公民,而服务器颁发证书的目的也是证明我们服务是一个合法的服务器,换句话说就是有了证书我们就可以清楚知道我们访问的服务器到底是不是我们真正

Linux学习笔记—— 基于CentOS创建私有CA及应用

这篇文章应该是有史以来,历时最长最纠结的一次,毫不夸张的讲总结到词穷的地步了.现在每次一到理论知识梳理的过程,总有种茶壶里的饺子,稍微懂点但有说不出来,哎!这辈子估计当不了老师了,话不多说还得撸起袖子接着写不是. 第一章.详细描述一次加密通讯的过程,结合图示最佳. HTTPS在基于SSL建立会话前,会经历4次握手过程以获取会话密钥.流程如下: 图示1 HTTPs 通讯流程详细说明 1. 客户端请求(ClientHello) 客户端向服务器发送会话请求,这一步称为ClientHello.Clien

加密/解密&利用OpenSSL构建私有CA

在互联网安全及个人隐私状况日益严峻的今天,加密技术变得尤为重要并且不可或缺.在密码雪中,加密是指将明文信息隐匿起来,使之在缺少特殊信息时不可读.本文所讲的主要是在互联网传输数据时所用的加密方式.我们都知道OSI&TCP/IP网络参考模型,通常我们会把这两个模型分为通信子网和资源子网两部分,但是在构建网络的初期,信息从发送端送达到接受端都非常困难所以在设计模型之初并没有考虑过多的安全因素,以至于通信子网和资源子网都没有涉及到数据加密的内容.为了解决这个问题,网景公司在资源子网和通信子网之间添加了半

加密解密基础、PKI及SSL、创建私有CA

基本概念: 加密作为数据安全保障的一种方式,它不是近代才产生的,历史已经相当久远:加密算法就是加密的方法. 数据加密解密: 数据加密的基本过程就是对原来为明文的文件或数据按特定算法进行处理,使其成为不可读的一段代码,通常称为"密文",使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取.阅读的目的.该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程 为什么需要对数据加密:加密在网络上的作用就是防止有用或私有化信息在网络上被拦截和窃取:比如个

OpenSSL建立私有CA

yum安装OpenSSL: 提示已经安装过了. openssl的主配置文件:/etc/pki/tls/openssl.cnf [CA_default] dir:CA的主目录 certs:已颁发证书的存储位置 crl_dir:已吊销证书的存储位置 database:证书索引文件 new_certs_dir:新颁发证书的存储位置 certificate:CA证书文件 serial:证书颁发时的当前序列号 crlnumber:吊销证书的当前序列号 crl:当前使用的CRL private_key:CA

简述如何利用openssl创建私有CA

我在这篇博客中讲了加密解密原理和相关算法及其实现:http://starli.blog.51cto.com/8813574/1671408 CA是什么?为什么需要CA? 先看下面的互联网安全通讯模型! 现在互联网上常用的安全通讯模型: 发送方发送数据时执行的步骤如下(分别对应于上图发送方的1.2.3): 1.发送方将需要在互联网上进行安全传输的数据采用单向加密算法提取数据的特征码,然后用自己的私钥加密这段特征码放在数据的尾部: 2.发送方生成一个一次性的对称加密算法的秘钥,然后使用对称加密算法和