配置 Linux-1 为 CA 服务器,为所有 Linux 主机颁发证书,不允许修改/etc/pki/tls/openssl.conf
时间: 2023-12-30 16:05:08 浏览: 253
linux下搭建CA认证服务器并认证服务.doc
要配置 Linux-1 为 CA 服务器并为其他 Linux 主机颁发证书,可以按照以下步骤操作:
1. 安装 OpenSSL 工具包。在 Linux-1 上执行以下命令:
```
sudo yum install openssl
```
2. 在 Linux-1 上创建一个新的目录来存储 CA 相关文件。在此示例中,我们将使用 `/opt/ca` 目录。执行以下命令:
```
sudo mkdir /opt/ca
sudo chmod 700 /opt/ca
```
3. 生成 CA 私钥。在 Linux-1 上执行以下命令:
```
sudo openssl genrsa -out /opt/ca/ca.key 2048
```
4. 生成 CA 证书。在 Linux-1 上执行以下命令:
```
sudo openssl req -x509 -new -nodes -key /opt/ca/ca.key -sha256 -days 3650 -out /opt/ca/ca.crt
```
在此过程中,你将需要为 CA 证书提供一些信息,例如组织名称、国家代码、州或省份名称等。请根据需要提供正确的信息。
5. 现在,我们需要创建一个新的 OpenSSL 配置文件来配置证书颁发请求。由于我们不允许修改 `/etc/pki/tls/openssl.conf` 文件,因此我们将创建一个新的配置文件。在 Linux-1 上执行以下命令:
```
sudo mkdir /opt/ca/config
sudo cp /etc/pki/tls/openssl.cnf /opt/ca/config/openssl.cnf
sudo chmod 600 /opt/ca/config/openssl.cnf
```
6. 编辑 `/opt/ca/config/openssl.cnf` 文件,找到 `[ v3_ca ]` 部分并取消注释以下行:
```
subjectAltName = @alt_names
[alt_names]
IP.1 = 10.0.0.1
IP.2 = 10.0.0.2
```
在 `IP.1` 和 `IP.2` 行中,将 `10.0.0.1` 和 `10.0.0.2` 替换为你计划颁发证书的 Linux 主机的 IP 地址。你可以添加更多的 `IP.X` 行以包含更多的主机。
7. 现在,我们可以为其他 Linux 主机颁发证书。在 Linux-1 上执行以下命令:
```
sudo openssl genrsa -out /opt/ca/client.key 2048
sudo openssl req -new -key /opt/ca/client.key -out /opt/ca/client.csr
sudo openssl x509 -req -in /opt/ca/client.csr -CA /opt/ca/ca.crt -CAkey /opt/ca/ca.key -CAcreateserial -out /opt/ca/client.crt -days 365 -sha256 -extfile /opt/ca/config/openssl.cnf -extensions v3_ca
```
在此过程中,你将需要为证书请求提供一些信息,例如组织名称、国家代码、州或省份名称等。请根据需要提供正确的信息。
在执行以上命令时,将会为客户端主机生成一个新的密钥和证书,并将其签名为 CA 证书。证书将在 `/opt/ca/client.crt` 文件中生成。
8. 将 `/opt/ca/ca.crt` 文件和 `/opt/ca/client.crt` 文件复制到要使用此证书的 Linux 主机上。将 `/opt/ca/client.key` 文件复制到每个主机的 `/etc/pki/tls/private` 目录中,并确保只有 `root` 用户可以读取此文件。执行以下命令:
```
sudo cp /opt/ca/ca.crt /etc/pki/ca-trust/source/anchors/
sudo update-ca-trust
sudo cp /opt/ca/client.crt /etc/pki/tls/certs/
sudo cp /opt/ca/client.key /etc/pki/tls/private/
sudo chmod 600 /etc/pki/tls/private/client.key
```
最后,重启 `httpd` 服务以确保新的证书文件生效:
```
sudo systemctl restart httpd
```
现在你已经将 Linux-1 配置为一个 CA 服务器,并为其他 Linux 主机颁发了证书。注意,此示例是为了演示目的而创建的,实际情况中可能需要进行更多的安全配置和调整。
阅读全文