自建私有CA

私有CA

为啥要自建私有CA,其使用范围是?
   因为CA的使用费用很高,另一方面内部通信加密的需要。

我们可以使用openssl工具生成密钥,创建数字证书,创建私有CA,手动加密解密数据。

如何使用openssl进行创建私有CA? OpenCA也可以构建CA


openssl命令:配置文件:/etc/pki/tls/openssl.cnf

构建私有CA方法:

在确定配置为CA的服务上生成一个自签证书,并为CA提供所需要的目录及文件即可;

具体步骤:

(1) 生成私钥;

~]# (umask 077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096)

(2) 生成自签证书;

~]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out                       /etc/pki/CA/cacert.pem -days 3655

参数介绍

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

-x509生成自签格式证书,专用于创建私有CA时;

-key:生成请求时用到的私有文件路径;

-out:生成的请求文件路径;如果自签操作将直接生成签署过的证书;

-days:证书的有效时长,单位是day;

(3) 为CA提供所需的目录及文件;

~]# mkdir  -pv  /etc/pki/CA/{certs,crl,newcerts}

~]# touch  /etc/pki/CA/{serial,index.txt}

~]# echo  01 > /etc/pki/CA/serial

注:

如何去CA那里签证书呢?

要用到证书进行安全通信的服务器,需要向CA请求签署证书:

步骤:(以httpd为例)

(1) 用到证书的主机生成私钥;

~]# mkdir  /etc/httpd/ssl

~]# cd  /etc/httpd/ssl

~]# (umask  077; openssl  genrsa -out  /etc/httpd/ssl/httpd.key  2048)

(2) 生成证书签署请求

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

(3) 将请求通过可靠方式发送给CA主机;

(4) 在CA主机上签署证书;

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

查看证书中的信息:

~]# openssl  x509  -in /etc/pki/CA/certs/httpd.crt  -noout  -serial  -subject

如果用户的私钥丢失了,如何吊销证书?

吊销证书:

步骤:

(1) 客户端获取要吊销的证书的serial(在使用证书的主机执行):

~]# openssl  x509  -in /etc/pki/CA/certs/httpd.crt  -noout  -serial  -subject

(2) CA主机吊销证书

先根据客户提交的serial和subject信息,对比其与本机数据库index.txt中存储的是否一致;

吊销:

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

其中的SERIAL要换成证书真正的序列号;

(3) 生成吊销证书的吊销编号(第一次吊销证书时执行)

# echo  01  > /etc/pki/CA/crlnumber

(4) 更新证书吊销列表

# openssl  ca  -gencrl  -out  thisca.crl

查看crl文件:

# openssl  crl  -in  /PATH/FROM/CRL_FILE.crl  -noout  -text

openssl对数据加密

从多子命令,分为三类:

 标准命令

消息摘要命令(dgst子命令)

单向加密:

工具:openssl dgst, md5sum, sha1sum, sha224sum, ...

dgst命令:

~]# openssl  dgst  -md5  /PATH/TO/SOMEFILE

加密命令(enc子命令)

标准命令: enc, ca, req, genrsa, ...

enc命令:

加密:~]# openssl  enc  -e  -des3  -a  -salt  -in fstab   -out fstab.ciphertext

解密:~]# openssl  enc  -d  -des3  -a  -salt  -out fstab   -in fstab.ciphertext

对称加密:

工具:openssl  enc,  gpg

支持的算法:3des, aes, blowfish, towfish

生成用户密码:工具:passwd, openssl  passwd

openssl  passwd  -1  -salt  SALT

生成随机数:工具:openssl  rand

~]# openssl  rand  -hex  NUM

~]# openssl  rand  -base  NUM

生成密钥:

生成私钥:

~]# (umask 077;  openssl  genrsa  -out  /PATH/TO/PRIVATE_KEY_FILE  NUM_BITS)

提出公钥:

~]#  openssl  rsa  -in  /PATH/FROM/PRIVATE_KEY_FILE  -pubout

Linux系统上的随机数生成器:

/dev/random:仅从熵池返回随机数;随机数用尽,阻塞;

/dev/urandom:从熵池返回随机数;随机数用尽,会利用软件生成伪随机数,非阻塞;

伪随机数不安全;

熵池中随机数的来源:

硬盘IO中断时间间隔;

键盘IO中断时间间隔;

时间: 2024-10-18 00:00:07

自建私有CA的相关文章

加密解密技术基础,pki以及自建私有CA

网络安全议题,几乎是业内人士避不开的话题,要做到网络安全,主要旨在三个方面的目标:保密性,完整性和可用性.本文在此主要对基础的加密和解密技术,ssl协议,以及ssl协议的实现实例做一些简要描述和梳理. 加密和解密: 目前对于网络安全的攻击,很大部分集中在"威胁保密性的攻击",也就是我们进场所说的数据泄露,加密和解密是目前最为直观的解决保密性问题的手段. 几种加密方式: 对称加密: 特点:加密和解密使用同一个密钥:将数据分割成多个固定大小的块,逐个加密: 缺点:密钥过多(对于服务器端,需

互联网密文数据实现方式与私有CA功能实现

友情提醒:文中实验平台为vmware workstation10 + centos 6.6 x86_64,在实际环境中请谨慎使用文件提及的命令. 内容概括: 1.数据加密方式与使用场景 2.openssl命令的简单使用 3.基于CentOS 6.6 X86_64平台实现私有CA的功能 唠叨两句:写这篇博文的目的一是对学习知识的总结,二是IT从业入门朋友提供一个参考.因不是专业研究加密和解密的人员,文中涉及的方式,显的很肤浅,若读者为这方面的大牛或骨灰人物,请移步吧,毕竟每天你只有24小时. 一

加密解密基础及私有CA的实现-2015092801

1. 加密解密简述 2.加密算法 3.加密解密步骤 4.使用openssl自建私有CA 加密解密基础: 由于互联网的数据传输基本上都是明文的(如ftp.http.telnet等),而往往有些数据在互联网传输对于传输方来讲,确实涉及隐私或是一些敏感的内容不想让互联网上其他人看到,因此,引入了加密的机制. 最早起的加密,采用移位的方式对数据进行加密,如数据数"abcd",其对应的在互联网上传输的内容是"efgh".后来的加密方式是采用"密码对照本",

创建私有CA并发放证书

公司内部证书发放流程 1.自建私有CA主机1 openssl的配置文件:/etc/pki/tls/openssl.cnf 1)创建所需要的文件:cd /etc/pki/CA/ touch index.txt echo 01 > serial [[email protected] CA]# tree . ├── cacert.pem ├── certs ├── crl ├── index.txt ├── newcerts │   ├── 01httpd.pem │   └── 01.pem ├──

openssl搭建私有CA

数据加密.CA.OpenSSL SSL security socket layer,安全套接字层 openssl (软件) 加密算法和协议: 对称加密:加密和解密使用同一密钥:(依赖于算法和密钥,其安全性依赖于密钥而非算法) 常见算法:des  3des(常用)  idea  cast5 特性:加密.解密使用同一密钥:将明文分隔成固定大小的块,逐个进行加密 缺陷:密钥过多和密钥分发 非对称加密: 密钥对儿:公钥(public key)和私钥(secret key) 公钥从私钥中提取而来,使用公钥

使用Openssl构建私有CA

使用Openssl构建私有CA Openssl是SSL的开源实现,是一种安全机密程序,主要用于提高远程登录访问的安全性.也是目前加密算法所使用的工具之一,功能很强大. Openssl为网络通信提供安全及数据完整性的一种安全协议,包括了主要的密码算法.常用的密钥和证书封装管理功能(CA)以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用,例如我们将会使用Openssl实现私有CA,并实现证书颁发. OpenSSL:SSL的开源实现 libcrypto:通用加密库,提供了各种加密函数 lib

加密、解密   以及OpenSSL建立私有CA

加密.解密,以及OpenSSL建立私有CA 加密技术是互联网最常用的安全保密手段,其利用技术手段把重要的数据加密后传送,到达目的地后再用相同或不同的手段进行解密. 加密技术包括两个元素:算法和密钥 常用的加密技术:对称加密.非对称加密.单向加密 以上几种加密技术各有千秋,经常组合起来使用 1.对称加密 加密和解密使用同一个密钥,将明文分隔成固定大小的块,逐个进行加密: 常见算法:DES  3DES  Twofish  IDEA  IDEA  CAST5  RC6 Blowfish 2.非对称加密

使用OpenSSL创建私有CA、签署证书

OpenSSL工具包是Linux上SSL v2/v3和TLS v1协议的实现方式之一,并建提供了常用的加密解密功能. OpenSSL主要由三部分组成: 1:libcrypto:加密库,主要用来实现加密.解密的功能库 2:libssl:实现SSL服务器端功能会话库 3:openssl命令行工具:/usr/bin/openssl 本文仅是介绍如何通过openssl命令创建私有CA,以及如何申请证书.签署证书等过程. 证书主要包含的就是拥有者自身的属性信息.公钥以及CA的签名,核心就是用户的公钥.服务

创建私有CA以及证书颁发详细步骤

准备两台主机,一台作为CA,IP地址为172.16.125.126:另一台作为用户,即证书请求的主机,IP地址为172.16.125.125. 在主目录为CA的相关信息就是CA所在主机.而主目录为ssl的相关信息就是客户机,即要使用到证书的主机. 第一步:在准备创建私有CA的主机上创建私有密钥:         [[email protected] CA]# cd /etc/pki/CA         [[email protected] CA]# (umask 077;openssl gen