我正在使用 SQL Server 的 Always Encrypted 功能,使用受自签名证书保护的主 key 对数据库中的几列进行加密。该证书是使用 SQL 2016 的 Management Studio 创建的,并且始终默认为比颁发日期早一年的到期日期 - 它存储在当前用户的 Windows 证书存储中。
是否可以将此证书的有效期延长至一年以上?
更具体地说,AE 所需的证书是否可以编写脚本 - 根据我的理解,该证书与 CREATE CERTIFICATE 命令创建的 sql 证书不同,需要导出为 pfx 等文件格式,以便 Azure Web 应用程序访问。
此外,如果证书已过期,数据是否仍然可以加密/解密?
最佳答案
SQLmojoe 包含在答案中的创建证书 SQL 语句不适用于 AE。
您可以使用脚本(批处理)并调用 makecert 以编程方式创建证书,例如:
Makecert.exe -n "CN=Always Encrypted cert" -pe -sr CurrentUser -r -eku 1.3.6.1.5.5.8.2.2,1.3.6.1.4.1.311.10.3.11 -ss my -sky exchange -sp "Microsoft Enhanced RSA and AES Cryptographic Provider" -sy 24 -len 2048 -a sha256
请注意,如果您想在本地机器存储位置创建证书,您将需要在 teh box 上具有管理员权限,并且您需要更改 -sr 参数。
我希望这有帮助。
关于azure-sql-database - 提高始终加密证书的有效性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34047484/