将用户 Public 键移动到公用文件夹以使 IIS 正常工作

Moving User Public Key to common folder for IIS to work

我生成了一个 private/public 密钥,当通过控制台应用程序 encrypting/decrypting 文件时它工作正常。但是当使用 Web API 和 IIS 时,同样的方法不起作用。

谷歌搜索后,发现我需要将 keyring 文件从用户配置文件目录移动到 c:\gnupg.

我可以在 用户配置文件 目录中找到很多文件。需要从这里移动哪些文件?

GnuPG 主目录

GnuPG 在每个系统用户的 GnuPG 主目录中运行(~/.gnupg/ 在 unixoid 系统上,在 %USER%\AppData 的某处(对于基于 Windows 的系统)。 GnuPG 对该文件夹及其内容的严格权限非常挑剔,如果其他系统用户可以访问这些文件,默认情况下会拒绝操作或至少发出警告。

最重要的文件是 gpg.conf(保存 GnuPG 的配置),pubring.gpgpubring.kbx 保存 public 密钥和 secring.gpg 保存私钥(这文件从 2.1 版开始合并到 GnuPG 的发布中)。 trustdb.gpg 包含信任信息。

其他文件大多是特定于实现的,或者用于与 gpg-agent 的通信,除非您进行高级 GnuPG 操作,否则对您来说并不重要。

将密钥迁移到服务用户的 GnuPG 主目录

如果您在一个用户下开发服务,而 运行 在另一个用户下开发服务,您将不得不再次导入密钥。最好的方法是导出密钥,然后在其他用户帐户中再次导入它们。

  1. 导出 public 密钥

    gpg --export [key-id] > public-key.gpg
    
  2. 导出密钥

    gpg --export-secret-keys [key-id] > secret-key.gpg
    
  3. 通过例如切换用户上下文

    su - [username]
    

    在 unixoid 系统上或为此用户打开一个新的命令提示符(右键单击,"Run as")

  4. 再次导入秘密和 public 密钥

    gpg --import secret-key.gpg
    gpg --import public-key.gpg
    
  5. 您可能需要像往常一样添加更多密钥、提供信任等,具体取决于您的个人要求。

更改 GnuPG 主目录位置

您还可以为您的应用程序切换到另一个 GnuPG 主目录。将应用程序数据放在一起可能是合理的,但不要将其放在 C:\gnupg 中,这对应用程序数据来说是一个可怕的位置。将文件夹放在您的应用程序存储其应用程序数据的位置。

通过 --homedir 选项或 GNUPGHOME 环境变量更改主目录。您仍然应该为本地操作、测试和生产环境维护单独的主目录——一方面,您可以缓解所有权限问题但不篡改它们并坚持使用 GnuPG 的默认值,另一方面防止个人 GnuPG 使用和您的交织问题应用。无论如何,在您的测试环境中拥有生产密钥表明您的开发和发布实践存在严重问题。