gpt4 book ai didi

docker - 在 Docker 容器中运行的 SQL Server 2017 Linux 镜像中从 .cer 和 .p7b 创建证书

转载 作者:行者123 更新时间:2023-12-02 19:33:52 25 4
gpt4 key购买 nike

我已经下载了 SQL Server 2017 Linux 镜像并在容器中运行。
接下来,我已从 SQL Server Management Studio 2017 连接到容器。
然后我使用“docker cp”将 .bak 文件复制到“/var/opt/mssql/backup”。

但它需要一个加密 key 来恢复。

因此,在 SSMS 中,我打开容器的查询窗口并运行以下命令:

USE master;
GO

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'P@ssw0rd';
GO

CREATE CERTIFICATE CertificateName FROM FILE = 'C:\cert.cer' WITH PRIVATE
KEY (FILE = 'C:\key.p7b', DECRYPTION BY PASSWORD = '********');

当我运行最后一个时,我收到此错误:
“证书、非对称 key 或私钥文件无效或不存在;或者您没有权限。”

如何为 Docker 容器执行此操作?
我可以从本地文件系统中获取文件吗?
或者我是否需要将它复制到“/var/opt/mssql/”并以某种方式从那里获取?

最佳答案

Docker 显然无法从本地文件系统中读取 cer 和 key 文件。
这是我所做的:

在命令提示符下,在容器中创建一个目录来保存 key 。

docker exec -it sqlcontainer1 mkdir /var/opt/mssql/setup
docker cp "C:\Temp\cert.cer" sqlcontainer1:/var/opt/mssql/setup
docker cp "C:\Temp\key.p7b" sqlcontainer1:/var/opt/mssql/setup

然后我回到 SSMS 并再次运行命令:
--DROP MASTER KEY

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '********';
GO

CREATE CERTIFICATE CertName FROM FILE = '/var/opt/mssql/setup/cert.cer' WITH
PRIVATE KEY (FILE = '/var/opt/mssql/setup/key.p7b', DECRYPTION BY PASSWORD =
'********');

关于docker - 在 Docker 容器中运行的 SQL Server 2017 Linux 镜像中从 .cer 和 .p7b 创建证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48285844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com