在操作之前,要明确一点:搭建私有CA是为了给用户颁发证书!
(友情提示:这篇文章有点长,看完估计要10分钟,建议边听歌边看)
第一步:创建index.txt和serial (如果不存在,会出现报错)
touch /etc/pki/CA/index.txt(index 存放证书所有者,颁发者等信息,若无,后续会提示失效)
echo 0F > /etc/pki/CA/serial
切换到CA下创建
(centos7和8系统方法一样,以上两个文件颁发前必须要创建好,若没有,后续操作会报错)
这两步必须切换到CA下创建)
第二步:创建CA相关目录和文件
执行:mkdir -pv /etc/pki/CA/{certs,crl,newcerts,private} -p
(这条命令后面跟了一个-p 我特意请教了这方面的资深大神,表示;加不加不影响执行的结果,所以,我没加)
第三步:创建私钥放在private的子目录下private子目录下
执行:openssl genrsa -out private/cakey.pem 2048
其中文件名就叫cakey.pem 2048是位数
可以查看此刻文件是否安全
相对于centos8系统会自动建立来说,7系统显得有点害羞,如下图,创建后很明显不安全,组用户和其他用户都可以读哎??
所以在7系统下 到了这一步还需要手动对权限进行修改
而最正确的做法,还是一开始就直接执行
修改权限的操作是在前面加上umaks (需要设置的权限) 在权限300后跟的是分号; 不是冒号,这点要记住
umask 400; openssl genrsa -out private/cakey.pem 2048
具体权限可以参考
第四步:利用私钥文件创建对于的签名证书
执行 openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -days 3650 -out /etc/pki/CA/cacert.pem
x509是证书的格式,有效期默认是365天,可以手动设置,这里我们设置为3650 也就是10年
按回车后按照提示 输入信息:
下图信息分别是,
国家
省份
省会
公司机构名称
公司性质
公司网址
公司邮箱
输入网址后回车 输入 cat cacert.pem显示如下图是通过base64加密过的
可以执行openssl x509 -in cacert.pem -noout -text来解码 结果如下:
也可以单独选一些选项来看
比如openssl x509 -in cacert.pem -noout -data 有效期
openssl x509 -in cacert.pem -noout -subject 颁布者。等
把秘钥保存到桌面查看
安装 yum -y install lrzsz
执行 sz cacert.pem
要打开该秘钥,将文件后缀改成.cer或者.crt都可以
该操作是交互式操作,现在就可以给客户颁发证书了
然而,交互式操作只需要一条命令
执行openssl req -utf8 -newkey rsa:1024 -subj “/CN=www.magedu.org” -keyout app.key -nodes -x509 -out app.crt
说明,生成一个证书文件,一个私钥文件
为了方便操作,将两个文件移动到data下
其中 app.crt是签名证书
app.key是私钥证书
执行openssl x509 -in app.crt -noout -text
个人感觉非交互式的操作步骤虽然多,但是对于初学者来说,更适合!
以上是全部过程
接着我们来证书申请
第一步:cd /data
mkdir /data/app1切换到app1
第二步:然后生成私钥文件
执行:umask 066; openssl genrsa -out /data/app1/app1.key 2048
第三步 利用私钥文件生成证书申请文件
openssl req -new -key /data/app1/app1.key -out /data/app1/app1.csr 如图文件生成
(说明:私钥文件是key后缀,证书文件都是csr后缀)
第四步:颁发证书
openssl ca -in /data/app1/app1.csr -out /etc/pki/CA/certs/app1.crt -days 1000
结果如图
查看serial (serial是存放下一个证书的 执行命令可以查看下一个证书的编号是10)
验证证书有效性(查看)
openssl ca -status 0F