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

时间:2016-05-05 08:27:29

标签: c# asp.net-web-api gnupg

我生成了一个私钥/公钥,它在通过控制台应用程序加密/解密文件时工作正常。但是在使用带有IIS的Web API时也是如此。

在谷歌搜索之后,我发现我需要将密钥环文件从用户个人资料目录移动到c:\gnupg

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

Screenshot showing GnuPG home directory

1 个答案:

答案 0 :(得分:0)

GnuPG主目录

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

最重要的文件是gpg.conf(持有GnuPG'配置),pubring.gpgpubring.kbx持有公钥,secring.gpg持有私钥(此文件为从版本2.1开始合并到GnuPG的发布中。 trustdb.gpg保存信任信息。

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

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

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

  1. 导出公钥

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

    gpg --export-secret-keys [key-id] > secret-key.gpg
    
  3. 通过例如

    切换用户上下文
    su - [username]
    

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

  4. 再次导入密钥和公钥

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

  6. 更改GnuPG主目录位置

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

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