Linux如何创建私有CA和申请证书

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

三种策略:匹配、支持和可选。匹配:指要求申请填写的信息跟CA设置信息必须一致;支持:指必须填写这项申请信息;可选:指可有可无。

实验环境:需要两台主机,我这里用主机A(Centos6:ip为172.17.250.83)创建CA并给其他主机提供CA服务;主机B(Centos7:ip为172.17.253.204)为httpd服务器,用来申请证书。

1、首先看一下配置文件的部分内容,其中以下内容在创建CA时是必须要写的:

dir             = /etc/pki/CA           # Where everything is kept
certs           = $dir/certs            # Where the issued certs are kept
crl_dir         = $dir/crl              # Where the issued crl are kept
database        = $dir/index.txt        # database index file.
#unique_subject = no                    # Set to ‘no‘ to allow creation of
                                        # several ctificates with same subject.
new_certs_dir   = $dir/newcerts         # default place for new certs.
certificate     = $dir/cacert.pem       # The CA certificate
serial          = $dir/serial           # The current serial number
crlnumber       = $dir/crlnumber        # the current crl number
                                        # must be commented out to leave a V1 CRL
crl             = $dir/crl.pem          # The current CRL
private_key     = $dir/private/cakey.pem  # The private key

2、根据配置文件的需要创建必须的文件。

[[email protected] ~]#touch /etc/pki/CA/index.txt  #生成证书索引数据库的文件
[[email protected] ~]#echo 01 > /etc/pki/CA/serial  #指定第一个颁发证书的序列号
[[email protected] ~]#tree /etc/pki/CA/
/etc/pki/CA/
├── certs
├── crl
├── index.txt
├── newcerts
├── private
└── serial
4 directories, 2 files

注意:创建的这两个文件,包括接下的实验里创建的文件名一定要与配置文件中的文件名一样。

3、在主机A(Centos6)上创建CA服务,并自签证书

(1)生成私钥

[[email protected] ~]#(umask 066;openssl genrsa -out private/cakey.pem -des3 4096)  #-des3是对文件进行加密

注意:用小括号说明是在子shell中执行括号内的命令,不会影响父shell的设置;将umask设置为066是为了防止其他人有权限查看和修改生成的私钥;在4096前还可以给私钥加上加密算法,比如des3、 rsa等,本例子用了des3加密。

可以看一下加密过后的部分文本:

(2)生成自签证书

[[email protected] ~]#openssl req -new -x509 -key private/cakey.pem -days 3650 -out cacert.pem

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

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

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

-days n:证书的有效期限

-out /PATH/TO/SOMECERTFILE: 证书的保存路径

查看一下证书的部分加密文本:

(3)把cacert.pem文件传输到windows上,由于在windows上不能识别.pem为后缀的文本,所以这里我们要把该文本改成以.cer为后缀的文本,修改后的文件图标为

在windows上打开证书看一下。

4、在需要使用证书的主机B(Centos7)上生成证书请求

(1)给httpd服务生成私钥

[[email protected] ~]#(umask 066;openssl genrsa -out /etc/pki/tls/private/test.key -des3 4096)
Generating RSA private key, 4096 bit long modulus
..........................................................++
...........................................................................................................................................................................................................................++
e is 65537 (0x10001)
Enter pass phrase for /etc/pki/tls/private/test.key:
Verifying - Enter pass phrase for /etc/pki/tls/private/test.key:

(2)生成证书申请文件

[[email protected] ~]#openssl req -new -key /etc/pki/tls/private/test.key -days 3650 -out /etc/pki/tls/test.pem

(3)将证书请求文件传输给CA

[[email protected] ~]#scp /etc/pki/tls/test.pem @172.17.250.83:/etc/pki/tls/
The authenticity of host ‘172.17.250.83 (172.17.250.83)‘ can‘t be established.
RSA key fingerprint is 09:52:06:53:a1:13:99:f3:b9:5c:5f:0a:c4:b6:1c:ed.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘172.17.250.83‘ (RSA) to the list of known hosts.
[email protected]‘s password: 
test.pem                                       100% 1736     1.7KB/s   00:00

5、在主机A(Centos6)上签署证书,并颁发给证书申请者(主机B)

(1)签署证书

[[email protected] ~]#openssl ca -in /etc/pki/tls/test.pem -out /etc/pki/CA/certs/test.crt -days 3650
Using configuration from /etc/pki/tls/openssl.cnf
Enter pass phrase for /etc/pki/CA/private/cakey.pem:
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 1 (0x1)
        Validity
            Not Before: Sep 12 23:04:23 2017 GMT
            Not After : Sep 10 23:04:23 2027 GMT
        Subject:
            countryName               = CN
            stateOrProvinceName       = HeNan
            organizationName          = Linuxca.org
            organizationalUnitName    = dev
            commonName                = linuxca
            emailAddress              = [email protected]
        X509v3 extensions:
            X509v3 Basic Constraints: 
                CA:FALSE
            Netscape Comment: 
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier: 
                97:B6:0A:0A:70:C6:FB:29:BB:B9:4A:26:98:3E:73:8B:20:F4:37:5E
            X509v3 Authority Key Identifier: 
                keyid:73:E2:DE:70:0B:9E:6B:FA:DD:5F:16:D5:0B:38:D2:A5:A0:2E:B4:D6
 
Certificate is to be certified until Sep 10 23:04:23 2027 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

(2)把证书颁发给主机B(Centos7)

[[email protected] CA]#scp certs/test.crt @172.17.253.204:/etc/pki/CA/
The authenticity of host ‘172.17.253.204 (172.17.253.204)‘ can‘t be established.
RSA key fingerprint is 91:d3:76:ba:60:12:0d:13:9b:93:6a:39:71:18:fe:65.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘172.17.253.204‘ (RSA) to the list of known hosts.
[email protected]‘s password: 
test.crt                                       100% 7311     7.1KB/s   00:00

(3)在主机B(Centos7)上查看证书中的信息,

openssl x509 -in /PATH/FROM/CERT_FILE

-text|issuer|subject|serial|dates

opensslca -status SERIAL查看指定编号的证书状态

[[email protected] CA]#openssl x509 -in test.crt -text

至此,CA的创建和申请、颁发就完成了。

时间: 2024-12-14 00:27:57

Linux如何创建私有CA和申请证书的相关文章

Openssl应用实例:创建私有CA并申请证书

一:实验环境 CA:centos6   172.17.252.226 客户端:centos7 172.17.252.188 二:阅读CA相关配置文件 CA配置文件路径:/etc/pki/tls/openssl.cnf 图一 图二 图三 三:证书申请及签署步骤 1.生成申请请求 2.RA核验 3.CA签署 4.获取证书 具体实验步骤 一:创建私有CA(certificate autrority  签证机构)    ##操作环境:centos6 1.创建所需要的文件  (如图一所示) ①生成证书索引

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

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

创建私有CA及颁发证书

证书申请及签署步骤: 1.生成申请请求 2.RA核验 3.CA签署 4.获取证书 三种策略:匹配.支持和可选 ①匹配:指要求申请填写的信息跟CA设置信息必须一致,默认国家.省.公司信息必须一致 ②支持:指必须填写这项申请信息,但是可以和CA信息不一致 ③可选:指可有可无 创建私有CA及颁发证书步骤: 1.创建所需要的文件 ①openssl的配置文件:/etc/pki/tls/openssl.cnf 如果没有这个文件,那么需要安装一个包 rpm -ivh openssl-libs-1.0.1e-6

OpenSSL:实现创建私有CA、签署证书请求详解

一.OpenSSL:CA默认配置信息 1.证书签发机构CA:公共信任CA.私有CA 建立私有CA方式如下: 小范围测试使用openssl. 大范围维护大量证书企业使用OpenCA(对openssl进行了二次封装,更加方便使用) 2.openssl 配置文件:/etc/pki/tls/openssl.cnf [[email protected] tmp]# cat  /etc/pki/tls/openssl.cnf 该配置文件中以 "[配置段]",的形式配置相关信息 ==========

创建私有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 ├──

局域网内 创建私有CA和申请CA步骤

准备环境:2台虚拟机,centos6.7(客户端)和centos7.0(服务端) 配置文件:/etc/pki/tls/openssl.cnf ①.创建所需要的文件 touch /etc/pki/CA/index.txt echo 01 > /etc/pki/CA/serial ②.cd /etc/pki/CA 目录下 生成私钥 (umask 066; openssl genrsa -out private/cakey.pem 2048) 生成自签名证书 openssl req -new -x50

使用OpenSSL创建CA和申请证书

OpenSSL简介 OpenSSL是一种加密工具套件,可实现安全套接字层(SSL v2 / v3)和传输层安全性(TLS v1)网络协议以及它们所需的相关加密标准. openssl命令行工具用于从shell程序使用OpenSSL加密库的各种加密功能. 它可以用于: 创建和管理私钥,公钥和参数 公钥加密操作 创建X.509证书,CSR和CRL 消息摘要的计算 使用密码进行加密和解密 SSL / TLS客户端和服务器测试 处理S / MIME签名或加密的邮件 时间戳记请求,生成和验证 openssl

私有CA建立和证书申请

私有CA建立和证书申请 CA在创建时有规定的格式,详细需要参考/etc/pki/tls/openssl.cnf此文件存放了CA相关的一些配置信息.以下为比较重要的2个相关配置:1.此段为CA的详细目录结构 #################################################################### [ ca ] default_ca = CA_default # The default ca section ######################

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

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