1.9. Quarkus CLI 命令和开发证书颁发机构
TLS registry 提供 Quarkus CLI 命令来生成开发证书颁发机构(CA)和可信证书。这可避免在本地使用自签名证书。
以下片段显示了 quarkus tls 命令的描述,它包含两个子命令:
在大多数情况下,您要生成 Quarkus Development CA 一次,然后生成由此 CA 签名的证书。Quarkus Development CA 是一个证书颁发机构,可用于在本地签名证书。它仅对开发目的有效,且仅在本地计算机上信任。生成的 CA 位于 $HOME/.quarkus/quarkus-dev-root-ca.pem 中,并安装到系统信任存储中。
1.9.1. 了解自签名与 CA 签名证书 复制链接链接已复制到粘贴板!
使用 TLS 进行开发时,您可以使用两种类型的证书:
- 自签名证书 :证书 由使用它的同一实体签名。默认情况下不信任它。当证书颁发机构(CA)不可用或需要简单设置时,通常使用此类证书。它不适用于生产环境,仅适用于开发。
- CA 签名证书 :证书 由证书 CA (可信实体)签名。此证书默认是可信的,是生产环境的标准选择。
虽然您可以使用自签名证书进行本地开发,但存在限制。浏览器和工具 curl、wget 和 httpie 通常不信任自签名证书,需要在操作系统中手动导入 CA。
要避免这个问题,请使用开发 CA 为证书签名并在系统信任存储中安装 CA。这样可确保系统信任 CA 签名的证书。Quarkus 简化了开发 CA 和此 CA 签名的证书的生成。
1.9.2. 生成开发 CA 复制链接链接已复制到粘贴板!
开发 CA 是一个证书颁发机构,可用于在本地签名证书。请注意,生成的 CA 仅适用于开发目的,只能在本地机器上信任。
生成开发 CA:
quarkus tls generate-quarkus-ca --install \
--renew \
--truststore
quarkus tls generate-quarkus-ca --install \
--renew \
--truststore
安装证书时,您的系统可能会要求您的密码在系统信任存储中安装证书,或者要求在 Windows 上的对话框中进行确认。
在 Windows 上,以管理员身份从提升的终端运行,以在系统信任存储中安装 CA。
1.9.3. 生成可信(签名)证书 复制链接链接已复制到粘贴板!
先决条件
安装 Quarkus Development CA 后,生成可信证书。此证书由 Quarkus Development CA 签名,并被您的系统信任。
quarkus tls generate-certificate --name my-cert
quarkus tls generate-certificate --name my-certCopy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令生成由 Quarkus Development CA 签名的证书,如果正确安装或导入,您的系统将会信任。
证书存储在
./.certs/中。生成两个文件:
-
$name-keystore.p12:包含私钥和证书。它受密码保护。 $NAME-truststore.p12:包含 CA 证书,您可以将其用作信任存储,例如用于测试。其它选项可用:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 生成证书时也会生成
.env文件,使 Quarkus dev 模式了解这些证书。以 dev 模式运行应用程序以使用这些证书:
./mvnw quarkus:dev ... INFO [io.quarkus] (Quarkus Main Thread) demo 1.0.0-SNAPSHOT on JVM (powered by Quarkus 999-SNAPSHOT) started in 1.286s. Listening on: http://localhost:8080 and https://localhost:8443
./mvnw quarkus:dev ... INFO [io.quarkus] (Quarkus Main Thread) demo 1.0.0-SNAPSHOT on JVM (powered by Quarkus 999-SNAPSHOT) started in 1.286s. Listening on: http://localhost:8080 and https://localhost:8443Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 HTTPS:
https://localhost:8443/q/dev或发出curl请求来打开 Dev UI:curl https://localhost:8443/hello Hello from Quarkus REST%
curl https://localhost:8443/hello Hello from Quarkus REST%Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要如果没有安装 Quarkus Development CA,quarkus 会生成自签名证书。
1.9.4. 生成自签名证书 复制链接链接已复制到粘贴板!
即使安装了 Quarkus Development CA,也可以生成自签名证书:
quarkus tls generate-certificate --name my-cert --self-signed
quarkus tls generate-certificate --name my-cert --self-signed
这会生成 Quarkus 开发 CA 不签名的自签名证书。
1.9.5. 卸载 Quarkus 开发 CA 复制链接链接已复制到粘贴板!
从您的系统卸载 Quarkus 开发 CA 取决于您的操作系统。
1.9.5.1. 删除 Windows 上的 CA 证书 复制链接链接已复制到粘贴板!
使用带有管理员权限的 Powershell 终端列出 Windows 上的 CA 证书:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除存储的 CA 证书,并将
$Serial_Number替换为 CA 证书的序列号:> certutil -delstore -user -v Root $Serial_Number
> certutil -delstore -user -v Root $Serial_NumberCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.9.5.2. 删除 Linux 中的 CA 证书 复制链接链接已复制到粘贴板!
对于 Fedora:
sudo rm /etc/pki/ca-trust/source/anchors/quarkus-dev-root-ca.pem sudo update-ca-trust
sudo rm /etc/pki/ca-trust/source/anchors/quarkus-dev-root-ca.pem sudo update-ca-trustCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Ubuntu 中:
sudo rm /usr/local/share/ca-certificates/quarkus-dev-root-ca.pem sudo update-ca-certificates
sudo rm /usr/local/share/ca-certificates/quarkus-dev-root-ca.pem sudo update-ca-certificatesCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.9.5.3. 删除 Mac 上的 CA 证书 复制链接链接已复制到粘贴板!
在 Mac 上:
sudo security -v remove-trusted-cert -d /Users/clement/.quarkus/quarkus-dev-root-ca.pem
sudo security -v remove-trusted-cert -d /Users/clement/.quarkus/quarkus-dev-root-ca.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow