ubuntu CA安装 证书申请

本文详细介绍自建SSL证书的步骤,包括安装openssl、修改配置文件、创建目录、生成自签证书、申请证书、生成不同类型的公钥证书等过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.  安装 :apt-get install openssl

2. 修改配置文件:

   注意不同于网上,位置在:/usr/lib/ssl/openssl.cnf,

  将以下项改为自己的位置

  dir = /home/ubuntu/pki/demoCA # 自己的位置

3. 创建目录

  cd  /home/ubuntu/pki/demoCA

mkdir certs、crl、newcerts、private

touch    index.txt

echo 01 > serial

4. 首先需要生成自前证书

1) 生成私钥:

cd private   #注意和  openssl.cnf相关,也就是私钥在private  目录中

openssl genrsa -out cakey.pem 2048  #cakey.pem  名字在 openssl.cnf相关

2)生成证书请求,并自签

  运行以下命令,注意 cacert.pem名字和位置与配置文件相关

openssl req -new -x509 -key ./private/cakey.pem -days 7300 -out cacert.pem 

参数说明:

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

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

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

-days n:证书的有效期限 

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

要输入国家名、省份名、地区(市)名、组织或公司名、部门名、服务器名、Email地址 

注意 组织,公司名。

5.申请证书

可以创建一个目录或者另外一台机器上。

本例:mkdir test

1)创建私钥:

openssl genrsa -out nginx.key 2048

将创建私钥文件:nginx.key 

2)生成公钥

openssl req -new -key nginx.key -out nginx.csr

3) 由CA服务器签名

 openssl ca -in nginx.csr -out nginx.crt -days 365

签名时注意不成功错误, 组要是组织(Organization Name)等选项要和第4步的自签证书要一致。

注意:上述1)、2)为客户端自己生成,3)才是CA服务器的签名颁发,因此可以现在客户端生成**.csr文件,然后复制(scp)到CA服务器,再执行第3步。

名词解释:

CSR 是Certificate Signing Request的缩写,即证书签名请求,这不是证书,可以简单理解成公钥,生成证书时要把这个提交给权威的证书颁发机构。

CRT 即 certificate的缩写,即证书

可以使用以下方式将pem转换为crt:

openssl x509 -outform der -in cacert.pem -out cacert.crt

6. 产生公钥为椭圆曲线ECC类型的证书1) 产生私钥:openssl ecparam -out Ecctest.key -name prime256v1 -genkey
2) 

2)生成公钥

openssl req -new -key Ecctest.key -out Ecctest.csr

3) 由CA服务器签名

 openssl ca -in Ecctest.csr -out Ecctest.crt -days 365

7 产生dsa类型的证书

openssl dsaparam -genkey 512 -out dsa_test.key 
openssl req -new -key dsa_test.key -out Dsa_test.csr
openssl ca -in Dsa_test.csr -out dsa_test.crt -days 365


 

Ubuntu 系统上申请 SSL 证书最常用的方法是使用 Let's Encrypt 提供的免费证书。Let's Encrypt 是一个由 Internet Security Research Group(ISRG)提供的自动化、开放且免费的证书颁发机构(CA)。我们可以借助 `Certbot` 工具来自动完成申请、配置和续期流程。 以下是使用 Certbot 在 Ubuntu申请并配置 SSL 证书的完整步骤: --- ### ✅ 前提条件 - 拥有 Ubuntu 服务器(推荐使用 LTS 版本,如 20.04 或 22.04) - 安装了 Web 服务器(例如 Nginx 或 Apache) - 域名已解析到服务器 IP 地址 - 开放了防火墙的 80 和 443 端口 --- ### ✅ 步骤一:安装 Certbot 及其插件 以使用 Nginx 为例: ```bash sudo apt update sudo apt install certbot python3-certbot-nginx -y ``` 如果你使用的是 Apache,则替换为: ```bash sudo apt install certbot python3-certbot-apache -y ``` --- ### ✅ 步骤二:申请 SSL 证书 如果你使用的是 Nginx,直接运行以下命令即可自动配置 HTTPS: ```bash sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com ``` 如果你使用的是 Apache: ```bash sudo certbot --apache -d yourdomain.com -d www.yourdomain.com ``` > `-d` 表示域名,你可以根据需要添加多个子域名。 --- ### ✅ 步骤三:自动重定向 HTTP 到 HTTPS Certbot 会询问你是否希望将所有 HTTP 请求自动重定向到 HTTPS,建议选择“是”。 --- ### ✅ 步骤四:验证证书是否生效 访问你的网站 `https://yourdomain.com`,浏览器地址栏应显示绿色锁标志。 你也可以查看生成的证书文件位置: ```bash ls /etc/letsencrypt/live/yourdomain.com/ ``` 包括: - `fullchain.pem`:完整的证书链 - `privkey.pem`:私钥文件 --- ### ✅ 步骤五:设置自动续期 Let's Encrypt 的证书有效期为 90 天,Certbot 默认已经配置了定时任务自动续期。 你可以手动测试续期命令: ```bash sudo certbot renew --dry-run ``` --- ## 🧠 总结解释: - 使用 Certbot 可以快速地为你的 Web 服务器部署 SSL/TLS 证书。 - Certbot 支持多种 Web 服务器(Nginx/Apache)和 DNS 提供商。 - 自动化工具确保了证书可以定期更新而无需人工干预。 - Let's Encrypt 免费提供证书,适合大多数中小型网站使用。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值