使用OpenVPN的Viscosity客户端配置

Compatible Nitrokeys

3A/C/Mini

Passkey

HSM 2

Pro 2

FIDO2

Storage 2

Start

U2F

active

inactive

inactive

active

inactive

active

active

inactive

本指南将展示如何配置`Viscosity客户端<https://www.sparklabs.com/viscosity/>`__以连接到OpenVPN实例。使用`Nitrokey Pro 2 <https://shop.nitrokey.com/shop/product/nk-pro-2-nitrokey-pro-2-3>`__(或 Nitrokey Storage 2)。和`PKCS#11认证<https://openvpn.net/community-resources/how-to/#what-is-pkcs11>`__。

先决条件

在本指南中,你将需要一个为客户安装和配置的OpenVPN远程服务器。在本文件中,我们使用了安装在Debian 10服务器上的OpenVPN 2.49。

To read about how to configure OpenVPN to authenticate with Nitrokey Pro, you might consult the following documentation, as we will just cover the way to configure the Viscosity client in this guide.

你还将需要以下东西。

  • 一个Nitrokey Pro 2或Nitrokey Storage 2

  • 客户的私钥 ``client.key``加载在Nitrokey上。

  • 客户的证书 ``client.crt``加载到Nitrokey上。

  • 证书颁发机构文件,即用于设置 OpenVPN 的``CA.crt`` 文件

  • 可选:共享密钥文件,即``ta.key``

关于``PKCS#11``用OpenVPN进行密钥管理的更多信息,请参考OpenVPN的`文档。<https://openvpn.net/community-resources/how-to/>`__。

使用方法

  1. 启动Viscosity并创建一个新的连接 "openVPN"(你可以随心所欲地命名它)

  2. 在连接上点击右键并点击编辑

  3. 添加你的服务器的IP地址,并根据你的配置来配置端口。

  4. 在认证下,在``Type`向下滚动到``SSL/TLS Client (PKCS11)``。

  5. 为你的连接选择CA文件

    可选的。选择``ta.key``在``TLS-Auth``部分。

    img3
  6. 点击供应商字段旁边的添加按钮,选择``PKCS#11``模块作为你的Nitrokey。可以指定多个供应商,例如,我们将使用``OpenSC``。

    在macOS上,找到模块的最常见位置是/usr/lib目录。关于使用的位置,请参考你的驱动软件附带的文档。OpenSC的模块可以在``/Library/OpenSC/lib/opensc-pkcs11.so``找到。

    On Windows, the most common location for libraries is either in C:\Program Files or C:\Windows\System32. OpenSC libraries are generally located at C:\Program Files\OpenSC Project\OpenSC\pkcs11. There may be more than one library available here, you can try each one or simply add both.

  7. 从检索的下拉菜单中选择一种检索方法

    img4
    • 如果这台电脑上只使用一个硝基钥匙,请选择``Use certificate name below``。如果硝基钥匙目前已经连接到电脑上,点击``Detect``按钮,让粘度自动填入名称栏。否则这个字段可以手动完成。

    • 如果有疑问,或可能使用一个以上的硝基(即多个用户),则选择``Prompt for certificate name``。

    如果``Prompt for certificate name``被选中,Viscosity将自动检测Nitrokey上所需的密钥,使用指定的PKCS#11模块/s。从发现的任何设备中选择,或者输入``serialized id``的名称来手动使用。同样,如果需要,应该提示用户输入密码/PIN。

  8. 点击 "保存 "按钮,从主界面连接。

参考文献

笔记

  • Viscosity不是免费的,因此你在使用免费版本时可能会遇到问题。

  • 我们正在考虑使用`Pritunl <https://client.pritunl.com/>`__作为一个免费和开放的替代方案。