利用WKD发布自己的PGP公钥

WKD,全称”Web Key Directory“,网络密钥目录,是一种通过HTTPS获取给定邮箱地址公钥的一种方法,方便、安全、快捷。简单地说,当输入邮箱地址”me@httpsmail.com“,支持WDK邮箱或软件就会自动到httpsmail.com网站下指定目录自动获取”me@httpsmail.com“的公钥并导入。

目前支持WDK的邮箱有:

对于个人用户来讲,只需简单地将邮箱的公钥上传到服务器指定的文件目录即可,开始之前请确保:

  1. 邮箱地址为自己的域名邮箱;
  2. 服务器为Linux。

创建目录

登录Linux服务器,在域名网站的根目录下创建”.well-known/openpgpkey/hu“,

mkdir -pm 755 .well-known/openpgpkey/hu

注意,”.well-known“前有一个英文句号标点”.”,且全部为小写。

然后在”.well-known/openpgpkey“文件夹下新建”policy“文件。

touch policy

上传公钥

首先,需要在自己的电脑上获取邮箱公钥的Hash值,终端输入:gpg -k --with-wkd-hash me@httpsmail.com,显示结果如下:

1
2
3
4
5
6
7
pub   rsa3072 2019-11-20 [SC] [expires: 2024-08-23]
B60A5F9877BC1F87514C51E7C07C92AC6944C323
uid [ultimate] httpsMail <hello@httpsmail.com>
im4cc8qhazwkfsi65a8us1bc5gzk1o4p@httpsmail.com
uid [ultimate] httpsMail <me@httpsmail.com>
s8y7oh5xrdpu9psba3i5ntk64ohouhga@httpsmail.com
sub rsa3072 2019-11-20 [E]

其中,me@httpsmail.com下面的”s8y7oh5xrdpu9psba3i5ntk64ohouhga“即为该公钥的Hash值。

第二步,导出公钥。终端运行:gpg --export me@httpsmail.com > s8y7oh5xrdpu9psba3i5ntk64ohouhga导出邮箱对应的公钥。

注意事项:公钥必须为二进制格式文件且公钥文件名为该邮箱的Hash值。

最后将公钥上传到服务器”.well-known/openpgpkey/hu“文件夹下。

结果测试

打开测试网址https://metacode.biz/openpgp/web-key-directory,在文件框内输入邮箱地址”me@httpsmail.com“然后点击右侧的”Check“按钮。

1
2
3
4
5
Direct: key: https://httpsmail.com/.well-known/openpgpkey/hu/s8y7oh5xrdpu9psba3i5ntk64ohouhga?l=me
Direct: found key: B60A5F9877BC1F87514C51E7C07C92AC6944C323
Direct: Key contains correct User ID: httpsMail <me@httpsmail.com>
Direct: `Access-Control-Allow-Origin: *` header is missing
Direct: Policy file is present

显示”found key“即已成功。

登录Mailfence邮箱,新建邮件并选择使用OpenPGP加密,输入邮箱地址点击发送就会自动查找相应的公钥,选中并点出导入即成功发送PGP加密邮件。

如下图:

其它

  1. Protonmail添加联系人后未自动导入,我得再研究研究。
  2. WDK有两种方式:Advanced和Direct,以上方法为Direct方式,Advanced方式是通过DNS域名解析,感兴趣的可以参考一下下方所列的参考资料。

参考资料


支付宝打赏 微信打赏

感谢打赏,支持支付宝、微信!