一、创建私有的CA 1)查看openssl的配置文件:/etc/pki/tls/openssl.cnf 2)创建所需的文件 touch /etc/pki/CA/index.txt echo 01 >/etc/pki/CA/serial 3)CA自签证书生成私钥 cd /etc/pki/CA (umask 066;openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048) 4)生成自签名证书 openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -days 7300 -out /etc/pki/CA/cacert.pem -new:生成新的证书签署请求 -x509:专用CA生成自签证书 -key:生成请求时用到的私钥文件 -days n:证书的有限期 -out /path/to/somecertfile:证书的保存路径 代码演示: 二、颁发及其吊销证书 1)颁发证书,在需要使用证书的主机生成证书请求,给web服务器生成私钥(本实验在另一台主机上) (umask 066;openssl genrsa -out /etc/httpd/ssl/httpd.key 2048) 2)生成证书申请文件 openssl req -new-key /etc/httpd/ssl/httpd.key -days 365 -out /etc/httpd/ssl/httpd.csr 3)将证书文件传给CA,CA签署证书并将证书颁发给请求者,注意:默认国家、省和公司必须和CA一致 openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365 4)查看证书中的信息 opessl x509 -in /path/from/cert_file -noout -text|sbuject|serial|dates 5)吊销证书,在客户端获取要吊销的证书的serial openssl x509 -in /PATH/FROM/CERT_FILE -noout -serial -subject 6)在CA上,根据客户提交的serial与subject信息,对比检验 是否与index.txt文件中的信息一致吊销证书 openssl ca -revoke /etc/pki/CA/newcerts/ SERIAL.pem 7)生成吊销证书的编号(第一次吊销一个证书时才需要执行) echo 01 > /etc/pki/CA/crlnumber 8)更新证书吊销列表,查看crl文件 openssl ca -gencrl -out /etc/pki/CA/crl/ca.crl openssl crl -in /etc/pki/CA/crl/ca.crl -noout -text 9)安装mod_ssl模块并修改/etc/httpd/conf.d/ssl.conf配置文件 DocumentRoot '/web/pma' ServerName www.:443 AllowOverride All Options None require all granted SSLCertificateFile /etc/httpd/ssl/httpd.crt SSLCertificateFile /etc/httpd/ssl/httpd.key 图示: 授权目录 10)测试 openssl s_client [-connect host:port] [-cert filename] [-CApath directory] [-CAfile filename] 实例: openssl s_client -connect www.:443 -CAfile /etc/pki/CA/cacert.pem curl --cacert /etc/pki/CA/cacert.pem https://www./ 实现图示: 代码演示: 不同主机之间拷贝文件小技巧: 在使用ssh远程登录时提示:remote host indentification has changed!则需清除~/.ssh/known_hosts文件即可,因为系统检测出rsa钥匙发生了改变。清除此配置文件重连。 作者:小耳朵 |
|
来自: 我本无我O > 《Linux操作系统》