Linux OpenSSL自建CA

一、自建CA前准备

1.1 openssl的主配置文件;

在建立私有CA之前,先来了解一下openssl的主配置文件,其路径:/etc/pki/tls/openssl.cnf

用VIM查看此脚本,在[CA_default],可以查看CA很多默认选项,如下;

dir: CA的主目录

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

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

database:证书索引文件

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

certificate:CA证书文件

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

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

crl:当前使用的CRL

private_key: CA私钥

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

1.2 CA证书结构和认证协议标准……. x.509

版本号

序列号

签名算法ID

发行者的名称

有效期

主体名称

主体公钥

发行者唯一标识符

主体的唯一标识

扩展

发行者的签名

 

1.3思路

想构建CA必须要了解CA构建的情况,请先参照加密解密方面博客

简单思路如下;

构建私有CA:

生成私钥;

自签署证书;

(2)给节点发放证书:

节点申请证书:

生成私钥

生成证书签署请求

把请求文件发送给CA

(3)CA签署证书:

验正请求者的信息

签署证书

把签署好的证书发还给请求者

二、自建CA详细步骤;

2.1生成私钥

CA私钥的存储位置为/etc/pki/CA/private下一般存储名字为cakey.pem的名字权限只有属主有权限

操作步骤如下图所示:


命令解释:

umask077:设置生成的文件的权限,umask取反

genrsa:生成私钥

-out:私钥存放路径

2048:2048字节计算(默认为2048--centos6.6)

2.2生成自签证书

自动在私钥中提取公钥放到自签证书中,用来验证所颁发证书的合法性。注意路径文件名:存放密钥库的目录为private,生成的自签文件存放在/CA目录下。

用vim进入配置文件,填写默认国家、城市等信息

[[email protected] ~]# vim/etc/pki/tls/openssl.cnf

进入脚本后需要修改填写地方,如下图;

保存退出后;

在命令行键入信息及剩余修改信息,如下图;

注意:开始只出现显示国家名称的信息,需要按键回车显示下一行信息

命令解释:

req:生成证书签署请求(PKCS#10格式)

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

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

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

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

-days 19890:证书有效时长;

index.txt------索引文件用来匹配证书编号

serial----证书序列号存放文件;从01开始

补充:-newkey rsa:NUM  无需事先专门生成私钥文件,而是生成请求时直接生成私成私钥,并提取公钥用于证书;

国家、公司等信息,申请获得证书者需要与自签整数保持一致,否则不可用;自建CA修改后的脚本可以共享给其他节点

 

 

三、给节点发放证书:

3.1节点申请证书:在申请证书的主机上进行

3.1.1生成私钥

假设:用httpd服务,因此其位置为/etc/httpd/conf/certs/;所以,操作步骤如下:

解析:Certs创建也可以在conf.d目录,用于存放私钥和证书

umask077;对权限取反

genrsa:生成私钥

httpd.key:自我命名的文件名,也可以以pem结尾

还可在命令行继续执行ll查看是否生成私钥

[[email protected] certs]# ll

total 4

-rw------- 1 root root 887 Dec 9 08:00 httpd.key

 

3.1.2生成证书签署请求

将生成的自签证书复制到本地;或者用U盘等复制途径

[[email protected] certs]#scp172.16.249.214:/etc/pki/tls/openssl.cnf /etc/pki/tls/

[[email protected] certs]#vim /etc/pki/tls/………….查看配置文件是否修改

[[email protected] certs]#openssl req –new –key httpd.key –outhttpd.csr –days 19890

此时显示国家、城市等信息,与自签证书一样操作

[[email protected] certs]#ls…….查看是否生成,显示如下

Httpd.csr  httpd.key

注意:其subject信息中地理位置与organization要与CA的保持一致

 

3.1.3把请求文件发送给CA

[[email protected]]#scp httpd.csr 172.16.249.214:/tmp/

或者用U盘复制给CA;也可以复制到除/tmp/外的文件里面

3.2 CA签署证书:在CA主机上执行如下命令

3.2.1验正请求者的信息及签署证书

[[email protected] CA]#ls /tmp/…………….在CA主机上查看httpd.csr是否存在

[[email protected] CA]# openssl ca -in /tmp/httpd.csr -out/etc/httpd.crt -days 19890……………………签署证书(默认时长为一年)

[[email protected] CA]#cat index.txt……………..签署完成后可查看到此索引里面会生成信息

[[email protected] CA]#cat serial………………….会更新显示下一个签署证书的号码

 

3.2.2把签署好的证书发还给请求者:

[[email protected] CA]#scp /tmp/httpd.crt  172.16.100.6:/etc/httpd/conf/certs/……………..放到特定目录下即可,也可U盘复制到REQ-HOST

注意:每一个需要接收服务器发来的证书,并验正证书合法性的客户端主机,都必须拥有CA的证书才能进行;

3.2.3看证书中的相关信息

# openssl x509 -in /path/to/somefile.crt -noout-text|-subject|-serial

 

 

四、吊销证书

4.1 获取证书的serial (在证书持有端进行)

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

x509:格式

-in:要吊销的文件路径

-noout:不输出任何额外信息

-serial:生成的序列号

-subjiect:输出subjiect的信息

4.2 CA

4.2.1验正请求者的信息

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

CA可以用cat查看/etc/pki/CA下的inndex.txt对应serial信息,电话核对是否与申请者的一致

4.2.2吊销证书

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

吊销后可使用cat查看index.txt,为R开头,表示revoked

解析:-revoke 吊销证书命令

newcerts:刚生成的证书存放目录,为SERIAL.pem,若时间久了,则是/etc/pki/CA/certs目录下

 

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

# echoSERIAL > /etc/pki/CA/crlnumber

4.2.4更新证书吊销列表

# cd /etc/pki/CA/crl/

# openssl ca -gencrl -out thisca.crl

thisca.crl为当前CA的吊销列表,可以自己定义文件名称

注意:查看crl文件的方法;

# openssl crl -in /path/from/somefile.crl -noout–text……..输出吊销列表至text

 

五、CA管理常用命令语法格式;

(1)查看颁发了多少证书:

[[email protected] CA]# cat /etc/pki/CA/serial………….会显示serial

(2)查看颁发的证书的记录:

[[email protected] CA]# ls /etc/pki/CA/newcerts/……….显示SERIAL.pem

(3)查看待签发证书目录

[[email protected] CA]#ls /etc/pki/csr……………..显示httpd.csr

(4)查看签好的证书目录

[[email protected] CA]#ls /etc/pki/certs…………….httpd.crt

(5)查看证书的序列号和subjiect的信息

[[email protected] CA]# cat /etc/pki/index.txt……………….V开头的信息

(6)查看吊销列表文件

# openssl crl -in /path/from/somefile.crl -noout–text……..CA输出吊销列表至text,其他用户可以查看此文档

时间: 2024-12-30 04:30:08

Linux OpenSSL自建CA的相关文章

Linux OpenSSL 自建CA

一.自建CA前准备 1.1 openssl的主配置文件: 在建立私有CA之前,先来了解一下openssl的主配置文件,其路径:/etc/pki/tls/openssl.cnf 用VIM查看此脚本,在[CA_default],可以查看CA很多默认选项,如下: dir: CA的主目录 certs: 已颁发证书的存储位置 crl_dir:已吊销证书的存储位置 database:证书索引文件 new_certs_dir:新颁发证书的存储位置 certificate:CA证书文件 serial:证书颁发时

使用OpenSSL 自建CA 以及颁发证书

OpenSSL是套开放源代码的软件库包,实现了SSL与TLS协议.其主要库是以C语言所写成,实现了基本的加密功能. OpenSSL可以运行在绝大多数类Unix操作系统上(包括Solaris,Linux,Mac OS X与各种版本的开放源代码BSD操作系统),OpenVMS与 Microsoft Windows.它也提供了一个移植版本,可以在IBM i(OS/400)上运作. 此软件是以Eric Young以及Tim Hudson两人所写的SSLeay为基础所发展的,SSLeay随着两人前往RSA

加密、解密原理和openssl自建CA过程详解

一.加密和解密相关知识简介 1.信息安全标准 NIST(National Institute of Standards and Technology)美国国家标准与技术研究院,制定了网络信息安全与保密的三个要素: 保密性(confidentiality):信息不泄露给非授权用户.实体或过程,或供其利用的特性.(一般包括数据保密性.隐私性.) 完整性(Integrity):数据未经授权不能进行改变的特性.即信息在存储或传输过程中保持不被修改.不被破坏和丢失的特性.(一般包括数据完整性.系统完整性.

互联网安全机制及OpenSSL自建CA

网络诞生的早期,能够接入网络的主机非常少,在当时基本上没有什么网络安全的概念,后来随着接入互联网的主机越来越多,之前的网络接入环境也越来越不适应后来网络的发展,俗话说"林子大了什么鸟都有"所以网络安全也越来越显得尤为重要,接下来这篇博文我们就浅谈一下网络安全的概念. 一:互联网安全的几大重要特征 网络安全几大重要标准:数据保密性:数据完整性:不可否认性.想要实现数据保密性需要对传输过程进行加密.要想让数据没有被非法授权,侵入,修改等破环行为,保护数据的完整性,需要对数据进行身份认证,而

加密 解密过程详解及openssl自建CA  

            加密 解密过程详解及openssl自建CA 为了数据信息能够安全的传输要求数据要有一定的安全性那么数据的安全性包含哪些方面的特性呢?    NIST(美国信息安全署)做了如下的定义:    保密性:       1,数据的保密性 指的是数据或隐私不向非授权者泄漏                   2,隐私性  信息不被随意的收集    完整性:       1,数据的的完整性:信息或程序只能被指定或授权的方式改变不能被随意的             修改        

加密、解密原理和openssl自建CA

openssl协议简介 SSL(Secure Socket Layer)是netscape公司提出的主要用于web的安全通信标准.一般情况下的网络协议应用中,数据在机器中经过简单的由上到下的几次包装,就进入网络,如果这些包被截获的话,那么可以很容易的根据网络协议得到里面的数据. SSL就是为了加密这些数据而产生的协议,可以这么理解,它是位与应用层和TCP/IP之间的一层,数据经过它流出的时候被加密,再往TCP/IP送,而数据从TCP/IP流入之后先进入它这一层被解密,同时它也能够验证网络连接俩端

Linux下自建CA的实现

CentOS7上搭建lamp环境 要求如下,搭建在同一台虚拟机上,实现下述3个功能: vhost1: pma.stu13.com, phpMyAdmin, 同时提供https服务 vhost2: wp.stu13.com, wordpress vhost3: dz.stu13.com, Discuz Vmware机器情况如下:     CA服务器:192.168.2.100/24     httpd服务器:192.168.2.109/24     Client客户机:192.168.2.1/24

使用OpenSSL自建CA + Nginx配置HTTPS

Ubuntu 16.04(ECS),OpenSSL 1.0.2g  1 Mar 2016,Nginx 1.10.3 (Ubuntu), 浏览器:Chrome 67,Firefox 61,Edge 40,IE 11 序言 孤之前从来没有建立过HTTPS网站,感觉很高级.很难,虽然也读过不少博文.资料,十年前在大学时,也使用过OpenSSL操作过建立证书,但后来都忘记了. 前同事说建立HTTPS网站很容易的,当时自己是不信的,并发生了一些争论,在此表示歉意. 由于自己搭建了网站,提供了注册.登录功能

Https、OpenSSL自建CA证书及签发证书、nginx单向认证、双向认证及使用Java访问

0.环境 安装了nginx,安装了openssl 1.配置和脚本 先创建一个demo目录(位置自己选择,我选择建在nginx的目录下): mkdir /etc/nginx/ca-demo cd /etc/nginx/ca-demo 修改SSL配置openssl.cnf(也可能是openssl.conf,不知道在哪可以用find -name / openssl.cnf查找) 将dir属性改成你上一步自建的目录,不要用相对路径,会踩坑,保存,如图: 我喜欢自动化,所以写了三个如下脚本,可以直接使用: