测试

使用自定义根 CA 生成 Azure 应用程序网关自签名证书
项目
2022/04/12
12 个参与者

应用程序网关 v2 SKU 介绍了如何使用受信任的根证书以允许后端服务器。 这会删除 v1 SKU 中所需的身份验证证书。 根证书是来自后端证书服务器的 Base-64 编码的 X.509(.CER) 格式根证书。 它标识颁发服务器证书的根证书颁发机构 (CA),服务器证书随后将用于 TLS/SSL 通信。

如果你网站的证书是由知名 CA(例如 GoDaddy 或 DigiCert)签名的,则默认情况下,应用程序网关将信任该证书。 在这种情况下,不需要显式上传根证书。 有关详细信息,请参阅应用程序网关的 TLS 终止和端到端 TLS 概述。 但如果你已有开发/测试环境,并且不想购买由已验证的 CA 签名的证书,则可以创建自己的自定义 CA,然后使用该 CA 创建自签名证书。

备注

自签名证书默认不受信任,并且可能难以维护。 另外,它们可能使用过时的哈希以及不够可靠的加密套件。 为了提高安全性,请购买由知名证书颁发机构签名的证书。

本文介绍如何执行以下操作:

创建自己的自定义证书颁发机构
创建由自定义 CA 签名的自签名证书
将自签名的根证书上传到应用程序网关,以便对后端服务器进行身份验证
先决条件
在运行 Windows 或 Linux 的计算机上安装 OpenSSL

本教程将使用 OpenSSL,不过,其他工具可能也可用于证书管理。 你可能会发现,许多 Linux 分发版(如 Ubuntu)中已捆绑 OpenSSL。

一个 Web 服务器

例如,用于测试证书的 Apache、IIS 或 NGINX。

一个应用程序网关 v2 SKU

如果没有现有的应用程序网关,请参阅快速入门:使用 Azure 应用程序网关定向 Web 流量 - Azure 门户

创建根 CA 证书
使用 OpenSSL 创建根 CA 证书。

创建根密钥
登录到安装了 OpenSSL 的计算机并运行以下命令。 这会创建加密密钥。

复制
openssl ecparam -out contoso.key -name prime256v1 -genkey
创建根证书并进行自签名
使用以下命令生成证书签名请求 (CSR)。

复制
openssl req -new -sha256 -key contoso.key -out contoso.csr
出现提示时,请键入根密钥的密码,以及自定义 CA 的组织信息,例如国家/地区、省/市/自治区、组织、组织单位和完全限定的域名(颁发者的域)。

create root certificate

使用以下命令生成根证书。

复制
openssl x509 -req -sha256 -days 365 -in contoso.csr -signkey contoso.key -out contoso.crt
上述命令将创建根证书。 稍后你将使用此证书来为服务器证书签名。

创建服务器证书
接下来,使用 OpenSSL 创建服务器证书。

创建证书的密钥
使用以下命令生成服务器证书的密钥。

复制
openssl ecparam -out fabrikam.key -name prime256v1 -genkey
创建 CSR(证书签名请求)
CSR 是请求证书时向 CA 提供的公钥。 CA 将针对此特定请求颁发证书。

备注

服务器证书的 CN(公用名)必须与颁发者的域不同。 例如,在本例中,颁发者的 CN 是 www.contoso.com,服务器证书的 CN 是 www.fabrikam.com

使用以下命令生成 CSR:

复制
openssl req -new -sha256 -key fabrikam.key -out fabrikam.csr
出现提示时,请键入根密钥的密码,以及自定义 CA 的组织信息:国家/地区、省/市/自治区、组织、组织单位和完全限定的域名。 这是网站的域,它应该不同于颁发者。

Server certificate

使用 CSR 和密钥生成证书,并使用 CA 的根密钥为该证书签名
使用以下命令以创建证书:

复制
openssl x509 -req -in fabrikam.csr -CA contoso.crt -CAkey contoso.key -CAcreateserial -out fabrikam.crt -days 365 -sha256
验证新建的证书
使用以下命令列显 CRT 文件的输出,并验证其内容:

复制
openssl x509 -in fabrikam.crt -text -noout
Certificate verification

验证目录中的文件,确保其中具有以下文件:

contoso.crt
contoso.key
fabrikam.crt
fabrikam.key
在 Web 服务器的 TLS 设置中配置证书
在 Web 服务器中,使用 fabrikam.crt 和 fabrikam.key 文件配置 TLS。 如果 Web 服务器无法接收这两个文件,你可以使用 OpenSSL 命令将其合并成单个 .pem 或 .pfx 文件。

IIS
有关如何导入证书并将其上传为 IIS 上的服务器证书的说明,请参阅如何:在 Windows Server 2003 中的 Web 服务器上安装导入的证书。

有关 TLS 绑定说明,请参阅如何在 IIS 7 上设置 SSL。

posted @ 2022-04-13 11:09  小李y  阅读(110)  评论(0编辑  收藏  举报