Rocky9中部署CA发布SSL 作者: aixiaxue 时间: 2026-06-10 分类: 历年技能大赛解析 阅读 153次 #查看并创建目录 查看/etc/pki/tls/openssl.cnf 找到要创建的目录内容 ```bash 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 certs with same subject. new_certs_dir = $dir/newcerts # default place for new certs. ``` mkdir -p /etc/pki/CA/{certs,crl,newcerts,private} cd /etc/pki/CA 创建CA账本 touch index.txt 创建流水 echo 00 > serial #生成私钥 使用 RSA 算法,帮我生成一把 2048 位长度的私钥,并把它安全地保存在 private/ 文件夹下,命名为 cakey.pem。 openssl genrsa -out private/key.pem 2048 #生成根证书 使用 OpenSSL,基于刚才生成的 CA 私钥,帮我签发一张有效期为 10 年的 X.509 标准自签名根证书,期间我会手动填写 CA 的身份信息,最后把这张证书保存为 cacert.pem。 openssl req -new -x509 -key private/cakey.pem -days 3650 -out cacert.pem | 代码 | 名称 | | :---: | :---: | | Country Name | 国家代码 | | Province Name | 省份 | | Locality Name (eg, city) | 城市名 | | Organization Name (eg, company) | 组织名称 | | Organizational Unit Name (eg, section) | 部门名称 | | Common Name | 通用名 | | Email Address | 管理员邮箱 | #修改openssl配置文件 为了https访问时能够顺利通过,需要将使用证书服务器加入配置文件中 编辑/etc/pki/tls/openssl.cnf 找到[ v3_req ] 添加 ```bash subjectAltName = @alt_name [ alt_name] DNS.1 = *.skills.lan DNS.2 = skills.lan ``` #根据网站创建密钥 mkdir -p /opt/web-certs cd /opt/web-certs openssl req -newkey rsa:2048 -nodes -keyout web.key -out web.csr 根据提示输入前面的国家等信息 #审核并颁发证书 openssl x509 -req -in web.csr -days 365 -CA /etc/pki/CA/cacert.pem -CAkey /etc/pki/CA/private/cakey.pem -CAcreateserial -out web.crt #应用到web 因为apache中使用ssl证书比较繁琐,这里使用nginx 安装nginx 查看配置文件/etc/nginx/nginx.conf ##强制跳转 在80端口添加 return 301 https://web.skills.china; 强制跳转 ##开启443 把所有443端口注释去掉 记录默认的密钥位置 ssl_certificate "/etc/pki/nginx/web.skills.china.crt"; ssl_certificate_key "/etc/pki/nginx/private/web.skills.china.key"; ##复制密钥到所在位置 mkdir -p /etc/pki/nginx/ mkdir -p /etc/pki/nginx/private/ cp /opt/webcrt/web.skills.china.crt /etc/pki/nginx/web.skills.china.crt cp /opt/webcrt/web.skills.china.key /etc/pki/nginx/private/web.skills.china.key ##重启应用并添加防火墙 systemctl restart nginx.service firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https firewall-cmd --reload ##添加密钥到信任 cp /etc/pki/CA/cert.pem /etc/pki/ca-trust/source/anchors/ 这里如果是windows访问,则需要将pem文件共享 update-ca-trust ##注意:因为selinux设置,最好使用nginx默认的目录 标签: none