自建CA生成证书详解

简介: 自建CA生成证书详解

今天继续给大家介绍Linux运维相关知识,本文主要内容是自建CA,并对客户CSR进行签名生成证书过程。
关于CA认证与https的原理可以参考以下文章:
CA认证与HTTPs原理介绍

一、CA认证中心配置
今天,我们使用192.168.136.210设备来作为我们的CA认证中心,提供证书签名服务。首先,我们需要安装openssl,安装命令如下:

yum install -y openssl
1
安装完成后,我们需要修改openssl的配置文件,打开文件/etc/pki/tls/openssl.cnf。将该文件172行处的basicContraints的CA:FALSE改为CA:TRUE。修改前文件如下所示:

之后,CA要生成自己的公私钥对,执行命令:

/etc/pki/tls/misc/CA -newca
1
执行结果如下:

该命令运行时需要和用户有所交互,在此过程中要注意:
①在第一处CA Certificate filename处直接回车,不用输入任何名称。
②其余项目可以根据自己实际情况进行配置。
配置完成后,我们可以查看自身证书,证书为/etc/pki/CA/cacert.pem,打开后如下所示:

CA的私钥存储在/etc/pki/CA/private/cakey.pem,如下所示:

二、web服务器生成证书请求文件
在CA配置完成后,接下来web服务器就可以向CA申请证书了,web服务器首先需要做的事生成自己的证书请求文件。
web客户端首先需要生成自己的公私钥对,在安装openssl后,执行命令:

openssl genrsa -des3 -out /etc/httpd/conf.d/https.key
1
执行结果如下:

然后,就可以使用web服务器的公钥生成证书请求文件了,执行命令:

openssl req -new -key /etc/httpd/conf.d/https.key -out /etc/httpd/conf.d/https.csr
1
就可以生成证书请求文件/etc/httpd/conf.d/https.csr。
之后,就需要把该文件发送给CA,可以使用scp命令,如下:

三、CA认证中心生成证书
CA在收到web服务端的证书请求文件后,需要对该证书申请者进行验证,在验证成功后,就可以用自己的私钥对该请求文件进行签名并生成证书。
根据证书请求文件生成证书的命令如下:

openssl ca -keyfile /etc/pki/CA/private/cakey.pem -cert /etc/pki/CA/cacert.pem -in /root/https.csr -out /root/https.crt
1
执行结果如下:

接下来,就可以把生成的证书发送给web服务器了。

四、WEB服务器配置实现https
web服务器在收到CA发送的证书文件后,需要做的是根据证书文件,配置自己的https功能。
首先,web服务器需要安装mod_ssl,该模块可以使得Apache支持https,安装命令如下:

yum install -y mod_ssl
1
安装后,在/etc/httpd/conf/目录下,会出现ssl.conf配置文件,接下来,我们需要修改该配置文件。打开该配置文件,大概在100行和107行处,有SSLCertifacateFile和SSLCertificateKeyFile两个参数,我们需要将其改为与自己的证书文件和密钥文件存储的位置,修改完成后的文件如下所示:

完成上述操作后,我们就可以启动Apache了,注意,由于配置了证书,而证书是受密码保护的,因此在启动时可能需要输入证书的密码,打开后结果如下所示:

可以看到,服务正常开启后,系统开始监听443端口。

五、结果验证
最后,我们队上述结果进行验证,在浏览器访问https://192.168.136.101,结果如下:

注意:尽管我们配置了CA中心,并且实现了https,但是由于我们的CA中心没有经过认证,所以浏览器选择拒绝相信该证书。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200
————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_40228200/article/details/121895791

目录
相关文章
|
SQL Java 数据库连接
Hive教程(08)- JDBC操作Hive
Hive教程(08)- JDBC操作Hive
2034 0
|
设计模式 Java 程序员
日志框架Slf4j作用及其实现原理
日志框架Slf4j作用及其实现原理
527 0
|
6月前
|
数据安全/隐私保护 iOS开发 Docker
MacOS安装DockerDesktop完整指南(从下载到汉化一步到位)
本教程详细讲解在MacOS上安装DockerDesktop并实现汉化的完整步骤,涵盖系统要求、下载安装、配置验证及中文界面设置,适合新手快速上手,助你轻松掌握Mac上的Docker使用。
|
10月前
|
存储 虚拟化 Windows
VMware安装Windows10
本案例介绍了在Windows系统上使用VMware Workstation 17.5 Pro安装配置Windows 10虚拟机的详细步骤,包括所需设备、软件下载链接、虚拟机设置及系统安装全过程。
7153 134
VMware安装Windows10
|
存储 运维 安全
|
存储 Linux 内存技术
linux系统查看硬盘序列号
本文介绍在Linux系统中查看硬盘信息的三种方法:1) 使用`hdparm`工具,通过`sudo hdparm -i /dev/sda`获取硬盘序列号和型号;2) 使用`smartctl`工具,不仅可查序列号和型号,还能了解硬盘健康状态;3) 使用`lshw`命令显示存储设备拓扑信息。此外,提供通用技巧如用`lsblk`确认磁盘标识,及注意事项,例如管理员权限和云主机可能隐藏物理序列号等。