HTTPS是互联网安全通信的标准协议。 NCache 管理中心在 Windows 和 Linux 系统上均使用 Kestrel Web 服务器通过 TLS/SSL 加密来保护数据安全。 NCache 管理中心。当 NCache 管理中心通过配置的 HTTPS 端点访问,与 Web 界面的通信已加密。
硬件需求
启用 HTTPS NCache 在 Windows 系统中使用管理中心时,您的 Windows 计算机上必须安装 PowerShell 版本 5.1 至 7.3.9。
启用 HTTPS NCache Linux 中的管理中心,您的计算机上必须安装 OpenSSL 才能创建证书。
第一步:获取或生成TLS证书
创建或获取包含可导出私钥的 TLS 证书。 有关创建证书的信息,请参阅此博客 生成自签名证书.
创建或获取包含可导出私钥的 TLS 证书。 有关创建证书的信息,请参阅此博客 生成自签名证书.
重要提示
虽然自签名证书适用于本地开发和测试环境,但我们强烈建议使用来自第三方的证书。 受信任的证书颁发机构 (CA) 用于生产环境。这可以避免浏览器发出信任警告,并确保加密链的完整性。
步骤二:安装证书并授予权限
要信任生成的证书,您需要使用证书存储中的适当帐户(本地计算机或当前用户)安装它。 在这方面,您可以进一步阅读有关 系统证书存储类型. 安装受信任的根证书 在您的计算机上,同时确保您的用户帐户具有访问权限 NCache 管理中心和服务。
注意:
确保 NCache 服务运行在与导入证书时相同的用户帐户下。
由于,该 ncache 用户没有对证书文件的读取权限,您需要授予对证书文件的读取权限 ncache 用户。 按照以下步骤在 Linux 中授予对证书和密钥文件的读取权限。
以管理员身份登录您的计算机,并确保 NCache 服务运行在 ncache 用户。
运行以下命令。
带有.crt证书
在终端中运行以下命令:
sudo chmod +r <path of the .crt file>
sudo chmod +r <path of the .key file>
带有 .pfx 证书
使用 PowerShell 运行以下命令来创建 ncache 目录,将其所有者更改为 ncache,创建一个证书库,添加一个 .pfx 证书到店:
sudo mkdir /home/ncache
// copy certificate to the following directory
cp /certificate_path /home/ncache
sudo chown -r ncache /home/ncache
cd /home/ncache
$store=[System.Security.Cryptography.X509Certificates.X509Store]::new([System.Security.Cryptography.X509Certificates.StoreName]::Root,[System.Security.Cryptography.X509Certificates.StoreLocation]::CurrentUser,[System.Security.Cryptography.X509Certificates.OpenFlags]::ReadWrite)
$store.Add([System.Security.Cryptography.X509Certificates.X509Certificate2]::new("MYCertificate.pfx","password1234",[System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::PersistKeySet))
步骤 3:更新 appsettings.json 中的 Kestrel 端点
生成并安装证书后,您需要更新中的 HTTPS 端点 应用设置.json 文件位于路径 C:\ Program Files文件\NCache\bin\工具\web. 有关如何配置不同端点以使用来自磁盘文件或证书存储的证书的详细信息,请参阅 为 ASP.NET Core 配置终结点 Kestrel Web 服务器文档。 以下是更新 HTTPS 端点的方法:
{
"Kestrel": {
"EndPoints": {
"Http": {
"Url": "http://0.0.0.0:8251"
},
"HttpsInlineCertStore": {
"Url": "https://0.0.0.0:8252",
"Certificate": {
"Subject": "<subject; required>",
"Store": "<cert store; required>",
"Location": "<location; defaults to CurrentUser>",
"AllowInvalid": "true"
}
}
}
}
}
生成证书后,您需要在中添加 HTTPS 端点 配置文件 文件位于路径 /opt/ncache/bin/tools/web/config.json. 有关如何配置不同端点以使用证书的详细信息,请参阅 为 ASP.NET Core 配置终结点 Kestrel Web 服务器文档。 以下是更新 HTTPS 端点的方法:
带有.crt证书
{
"Kestrel": {
"EndPoints": {
"Http": {
"Url": "http://0.0.0.0:8251"
},
"HttpsInlineCertStore": {
"Url": "https://0.0.0.0:8252",
"Certificate": {
"Path": "<path to .pem/.crt file>",
"KeyPath":"<path to .key file>",
"AllowInvalid": "true"
}
}
}
}
}
带有 .pfx 证书
{
"Kestrel": {
"EndPoints": {
"Http": {
"Url": "http://0.0.0.0:8251"
},
"HttpsInlineCertStore": {
"Url": "https://0.0.0.0:8252",
"Certificate": {
"Subject": "<subject; required>",
"Store": "<crt store; required>",
"Location": "<location; defaults to CurrentUser>",
"AllowInvalid": "true"
}
}
}
}
}
设置所需属性后,重新启动 NCache 管理中心接受您对证书所做的更改,然后浏览到 https://localhost:8252.
注意:
如果您指定端口 8252,则必须先通过防火墙启用它。
重要提示
配置更改后的任何异常都将记录在事件查看器中。
参见
为缓存配置加密
配置 TLS 加密 NCache