使用 ACF 1.9 生成 SSL 证书

来自 Alpine Linux

您需要为远程人员创建证书。您可能会为您的 VPN 服务使用类似 OpenVPN 或 Racoon 的工具。
但是,如果有一种方法可以...

  • 创建和管理证书
  • 查看您已颁发给所有人的所有证书
  • 吊销证书
  • 在颁发证书之前审查证书
  • 等等。

Alpine 通过 ACF 提供了一个友好的 Web 界面,可用于此类工作...

安装过程

这将大致指导您完成创建此类服务器的过程。
建议不要在您的 VPN 网关上托管此服务,而是使用另一台机器来生成您的证书。

准备硬件并安装 Alpine

首先设置一个盒子,用作您的 OpenVPN 服务器。
请阅读 'Installing_Alpine' 以获取关于如何执行此操作的说明。

安装和配置 ACF

安装 Alpine Linux 的 Web 前端,称为 ACF。系统将提示您为 ACF root 用户创建密码。

/sbin/setup-acf

安装 acf-openssl (ACF for openssl)

apk add acf-openssl

现在您应该可以使用另一台计算机上的 Web 浏览器开始浏览您的 OpenVPN 服务器。
注意: 假设您已配置此 OpenVPN 服务器并将其连接到网络。

配置

首先在您的浏览器中输入 https://{ipaddr}/ 并登录以浏览您的 OpenVPN 服务器。用户名为 'root',密码为您在上面输入的密码。

证书颁发机构

点击菜单上的 'Certificate Authority'(证书颁发机构)。
它应该会为您提供一个包含 'System info'(系统信息)和大量红色错误消息的页面。

点击页面底部的 [Configure](配置)按钮以生成一些初始配置。

转到 {Edit Defaults}(编辑默认值)选项卡,然后输入您想要设为默认值的值(此信息在您创建新的证书请求时出现)。
点击 [Save](保存)保存您的设置。

使用 ACF 生成证书

创建 ca.crt

首先我们需要创建 CA 证书(这是创建其他证书时使用的证书)。

现在转到 {Status}(状态)选项卡。
点击 [Generate](生成)按钮以生成您的 CA 证书。
将显示 CA 证书信息。

注意: 此操作只能执行一次。将来,{Status}(状态)页面将显示 CA 信息。
[Generate](生成)按钮将不再存在。

请求表单

{Request}(请求)表单用于创建新的证书请求。

在字段中填写您的值,然后点击 [Submit](提交)完成您的请求。

提供的字段(基于默认的 cnf 文件)

  • 国家名称(两位字母缩写)
  • 地区名称(例如,城市)
  • 组织名称
  • 通用名称(例如,证书 CN) <<< 此名称对于此证书应该是唯一的
  • 电子邮件地址
  • 多个组织单元名称(例如,部门)
  • 证书类型
  • x509 扩展

注意: x509 扩展框的格式应与您直接在 openssl.cnf 中填写一个部分时的格式相同。
部分将是[v3_req]

x509 扩展 示例

[ v3_req ]
subjectAltName ="IP:192.168.1.1, DNS:*.alpinelinux.org, DNS:redmine.alpinelinux.com"

查看

{View}(查看)选项卡使您可以

  • 查看/批准/删除 待处理的证书请求
  • 查看/下载/续订/吊销/删除 已批准的证书
  • 查看/删除 已吊销的证书
  • 下载已吊销证书列表

待处理证书

对于待处理的请求,请确保在批准之前审查证书。
一旦您验证所有信息都是正确的,没有错别字或拼写错误,请批准请求。

下载 .pfx

对于每个已批准的证书,您可以下载一个包含该证书的 .pfx 文件。
使用此 .pfx 文件,您可以提取您需要的证书。

专家

通过 {Expert}(专家)选项卡,您将能够编辑 '/etc/ssl/openssl-ca-acf.cnf' 配置文件。
如果您想将您的证书保存在 USB 存储器(或其他位置),您应该在此处进行此类更改。

可以添加诸如 subjectAltName 之类的条目,以供您生成的证书使用。

3.subjectAltName         = Assigned IP Address
3.subjectAltName_default = 192.168.1.1/32

开始使用 PFX 证书

提取 PFX 证书

以下示例通过在控制台(而不是在 ACF 中)输入命令来执行。
从 .pfx 文件中提取 'CA CERT'(CA 证书)

openssl pkcs12 -in PFXFILE -cacerts -nokeys -out cacert.pem

提取 'Private Key'(私钥)

openssl pkcs12 -in PFXFILE -nocerts -nodes -out mykey.pem

提取 'Certificate'(证书)

openssl pkcs12 -in PFXFILE -nokeys -clcerts -out mycert.pem

查看 PFX 证书信息

以可读/文本格式显示证书或密钥

openssl x509 -in mycert.pem -noout -text

使用 OpenSSL 命令行创建 CA

以下命令将需要密码。请务必记住此密码。

openssl genrsa -des3 -out server.key 2048
openssl req -new -key server.key -out server.csr
openssl rsa -in server.key. -out server.pem
openssl x509 -req -days 365 -in server.csr -signkey server.pem -out cacert.pem
mv server.pem /etc/ssl/private
mv cacert.pem /etc/ssl/