• 如何设置IIS中的HTTPS服务

      HTTPS是用于在客户端计算机和服务器之间交换的信息的安全通信信道。它使用安全套接字层(SSL)。本文介绍如何配置Internet信息服务(IIS)中的SSL / HTTPS服务,这个过程比较Apache中的类似过程。     配置SSL您的Web服务器     要在IIS中启用SSL,首先必须获得用于加密和解密通过网络传输的信息的证书。IIS包括您可以用它来发送证书请求,证书颁发机构自己的证书请求工具。此工具简化了获取证书的过程。如果您使用Apache,则必须手动获取证书。     在IIS和Apache都,您会收到从证书颁发机构,您必须在计算机上配置一个证书文件。阿帕奇通过使用SSLCACertificateFile指令读取其源文件中的证书。然而,在IIS中,可以配置和使用Web站点或文件夹属性的目录安全选项卡管理证书。     您可以从Apache到IIS迁移证明; 但是,Microsoft建议您重新创建或获取IIS新证书。     配置文件夹或网站以使用SSL / HTTPS     此过程假定您的站点已经有分配给它的证书。     1.登录到Web服务器计算机的管理员。     2.单击开始,指向设置,然后单击控制面板。     3.双击管理工具,然后双击Internet服务管理器。     4.选择在左窗格中的不同服务站点的列表中的网站。     5.右键单击Web站点,文件夹或您要配置SSL通信文件,然后单击属性。     6.单击目录安全性选项卡。     7.单击编辑。     8.点击,如果你希望网站,文件夹或文件要求SSL通信要求安全通道(SSL)。     9.单击要求128位加密配置(而不是40位)128位加密支持。     10.要允许用户不必提供自己的证书进行连接,单击忽略客户certificates.Alternatively,以允许用户提供自己的证书,请使用接受客户证书。     11.配置客户端映射,请单击启用客户证书映射,然后单击编辑将客户证书映射到用户。如果配置了此功能,您可以映射客户证书到Active Directory中的个人用户。您可以使用此功能,根据他们提供的证书时,他们访问网站自动识别用户。可以将一对一的基础上映射用户证书(一个证书标识一个用户),或可以许多证书给一个用户(证书的列表是根据特定的规则对特定用户进行匹配。第一有效匹配映射成为映射)。     12.点击OK。

    2021.12.21 浏览:77
  • 在OpenConnect VPN服务器(ocserv)中设置证书身份验证

    本教程将向您展示如何在Debian/Ubuntu/CentOS/RHEL上的OpenConnect VPN服务器(ocserv)中设置证书身份验证。OpenConnect(ocserv)是Cisco AnyConnect VPN协议的开源实现。 在前一篇文章中,我解释了使用Let's Encrypt TLS服务器证书设置OpenConnect VPN服务器的步骤。让我们加密不颁发客户端证书,所以在那篇文章中,我们使用了密码身份验证。每次输入用户名和密码都会很麻烦,尤其是当客户端软件(如iOS上的Cisco AnyConnect应用程序)不提供记住密码的选项时。许多OpenConnect客户端软件可以导入用户证书,这将使用户不必输入用户名和密码。证书认证也比密码认证更安全。 要求 为了学习本教程,假设您已经使用Let's Encrypt TLS server证书设置了OpenConnect VPN服务器。如果没有,请遵循以下教程之一。 在Ubuntu20.04上用Let's Encrypt设置OpenConnect VPN服务器(ocserv) 使用Let's Encrypt在Debian 11 Bullseye上设置OpenConnect VPN服务器(ocserv) 使用Let's Encrypt在CentOS 8/RHEL 8上设置OpenConnect VPN服务器(ocserv) 我们将建立自己的CA(证书颁发机构)来签署客户证书。ocserv守护程序应该继续使用Let's Encrypt颁发的TLS服务器证书,这样客户端软件就不会显示安全警告。 设置自己的CA(证书颁发机构) 我们希望使用证书身份验证,但我们加密不会颁发客户端证书,因此我们需要创建自己的CA。您可以使用openssl来完成这项工作,但ocserv建议使用GnuTLS,因此我将向您展示如何使用GnuTLS。 在Debian/Ubuntu服务器上安装gnutls bin包。 sudo apt安装gnutls bin 在CentOS/RHEL上安装gnutls utils包。 sudo dnf安装gnutls utils 在/etc/ocserv/中创建一个子目录以保存私钥和证书。 sudo mkdir/etc/ocserv/ssl/ 更改工作目录。 cd/etc/ocserv/ssl/ 使用certtool命令为CA生成私钥,该命令由gnutls bin或gnutls utils包提供。默认情况下,它生成3072位RSA密钥,这就足够了。 sudo certtool——生成私钥——输出文件ca私钥。佩姆 在生成CA证书之前,我们先创建CA证书模板文件。模板文件格式可在certtool手册(man certtool)中找到。 sudo nano ca-cert.cfg 将以下行添加到文件中。用适当的值替换占位符。 #X.509证书选项#科目的组织。organization=“vpn.example.com”#证书所有者的通用名称。cn=“示例CA”#证书的序列号。serial=001#从今天算起,该证书将在多少天内过期。如果没有过期日期,请使用-1。过期天数=-1#这是否是CA证书#此证书是否将用于签署数据签名#此密钥是否将用于签署其他证书。cert_signing_key#此密钥是否将用于签署CRL。crl_签名_密钥 保存并关闭文件。现在使用模板文件中的配置生成CA证书。 sudo certtool--生成自签名--加载privkey ca privkey。pem--模板ca-cert.cfg--输出文件ca-cert.pem 现在我们有了一个CA证书文件(CA-cert.pem)。 生成客户端证书 现在运行以下命令生成客户端私钥。 sudo certtool——生成私钥——输出文件客户端私钥。佩姆 创建客户端证书模板文件。 sudo nano client-cert.cfg 将以下行添加到文件中。uid必须是/etc/ocserv/ocpasswd文件中的用户名。 #X.509证书选项#科目的组织。organization=“vpn.example.com”#证书所有者的通用名称。cn=“John Doe”#证书所有者的用户id。uid=“username”#从今天算起,此证书将在多少天内过期。如果没有过期日期,请使用-1。到期日=3650#此证书是否将用于TLS服务器TLS#www#客户端#此证书是否将用于签署数据签名#密钥#此证书是否将用于加密数据(需要#在TLS RSA密码套件中)。请注意,最好使用不同的#密钥进行加密和签名。加密密钥 保存并关闭文件。然后运行以下命令生成客户端证书,该证书将由CA私钥签名。 sudo certtool--生成证书--加载私钥客户端私钥。pem——加载ca证书ca-cert.pem——加载ca私钥ca私钥。pem--模板client-cert.cfg--输出文件client-cert.pem 将客户机私钥和证书组合到一个受PIN保护的PKCS#12文件中。 sudo certtool——to-p12——加载私钥客户端私钥。pem--加载证书客户端-cert.pem--pkcs密码aes-256--输出文件客户端。p12——户外 现在,我们将客户机私钥和证书合并到一个文件客户机中。第12页。 请注意,iOS上的Ciso AnyConnect应用程序不支持AES-256密码。它将拒绝导入客户端证书。如果用户使用的是iOS设备,则可以选择3des-PKCS12密码。 sudo certtool——to-p12——加载私钥客户端私钥。pem--加载证书客户端-cert.pem--pkcs密码3des-pkcs12--输出文件ios客户端。p12——户外 客户端私钥和证书合并到一个文件ios客户端。第12页。 证书签名请求 只有当有多个VPN用户,并且用户希望使用自己的私钥时,才需要此步骤。 为了对最终用户的私钥保密,用户可以使用自己的私钥生成证书签名请求(CSR),然后向管理员发送证书请求,管理员随后向用户颁发客户端证书。首先,他们必须使用上述命令生成私钥和客户端证书模板。然后使用以下命令生成CSR。请求。pem文件由用户的私钥签名。 certtool——生成请求——加载私钥客户端私钥。pem——模板client-cert.cfg——输出文件请求。佩姆 接下来,用户发送请求。将pem和client-cert.cfg文件发送给管理员,管理员运行以下命令生成客户端证书。 sudo certtool--生成证书--加载ca证书ca-cert.pem--加载ca私钥ca私钥。pem——加载请求。pem--模板client-cert.cfg--输出文件client-cert.pem 之后,管理员将client-cert.pem证书文件发送给用户。 在ocserv守护程序中启用证书身份验证 编辑ocserv配置文件。 sudo nano/etc/ocserv/ocserv。形态 在上一个教程中,我们添加了以下行以启用密码身份验证。 auth=“plain[passwd=/etc/ocserv/ocpasswd]” 要启用证书身份验证,请取消注释以下行。 auth=“证书” 如果以上两行都未注释,则意味着用户必须同时通过密码身份验证和证书身份验证。因此,如果证书认证足以证明身份,那么请注释掉第一行。 如果允许用户选择证书身份验证或密码身份验证,则应改为使用以下行。 启用auth=“plain[passwd=/etc/ocserv/ocpasswd]”auth=“certificate” 现在找到ca证书参数。在Debian/Ubuntu上,设置为 ca证书=/etc/ssl/certs/ssl证书蛇油。佩姆 在CentOS 8/RHEL 8上,设置为 ca cert=/etc/ocserv/ca.pem 我们需要使用我们自己的CA证书来验证客户端证书,所以将此行更改为 ca-cert=/etc/ocserv/ssl/ca-cert.pem 接下来,找到下面这行。 证书用户oid=0.9.2342.19200300.100.1.1 你不需要改变它。我只想告诉你,0.9.2342.19200300.100.1.1代表客户证书中的UID。上面的一行告诉ocserv守护程序从客户端证书的UID字段中查找用户名。如果客户端证书已通过CA证书成功验证,并且ocserv守护程序可以在/etc/ocserv/ocpasswd文件中找到匹配的用户名,则客户端可以登录。 保存并关闭文件。然后重启ocserv。 sudo systemctl重启ocserv 在Debian/Ubuntu/CentOS/RHEL桌面上使用证书认证 使用scp命令下载客户端。p12文件到Debian/Ubuntu/CentOS/RHEL桌面。 scp[email protected]:/etc/ocserv/ssl/client。p12~ 然后安装openconnect客户端软件。 Debian/Ubuntu: sudo apt安装openconnect CentOS/RHEL: sudo dnf安装epel释放sudo dnf安装openconnect 要使用证书身份验证,请运行 sudo openconnect-b vpn。实例com-c客户端。p12 您将被要求使用本教程中较早设置的密码短语解锁客户端私钥。 如果密码输入正确,您现在应该连接到VPN服务器。 在Windows和MacOS桌面上使用证书身份验证 从OpenConnect GUI Github页面下载Windows或MacOS的OpenConnect GUI客户端。然后创建一个新的VPN连接配置文件,并将PKCS#12文件导入用户证书字段。点击保存按钮。您需要输入PIN才能解锁私钥。导入后,您不必再输入用户名和密码。 在iOS设备上使用证书身份验证 iOS用户可以使用Cisco AnyConnect应用程序。要在AnyConnect应用程序中导入客户端证书,您可以先将PKCS#12文件发送到附件中的电子邮件地址。然后在iOS上打开邮件应用程序。点击附件几秒钟,并与AnyConnect共享。然后输入PIN以导入文件。 导入后,在AnyConnect中编辑VPN连接。转到高级->证书,然后选择客户端证书。保存你的设置。 现在你不必再在iOS设备上输入用户名和密码了。Cisco AnyConnect应用程序不记得用户名和密码,因此在密码验证模式下,当手机不使用时,VPN连接将断开。在证书认证模式下,如果连接断开,应用程序将自动重新连接到VPN服务器。 iOS上AnyConnect客户端的问题 iOS上最新版本的AnyConnect客户端在TLS 1.3协议中使用证书身份验证时出现问题。如果在ocserv日志(sudo journalctl-eu ocserv)中看到以下错误,那么您也会遇到同样的问题。 GnuTLS错误(在worker vpn.c:795):已收到TLS致命警报。 您需要在AnyConnect iOS客户端中使用密码身份验证,或者在ocserv配置文件中禁用TLS 1.3。禁用TLS1。3.在/etc/ocserv/ocserv中查找tls priorities参数。配置文件,并添加:-VERS-TLS1。3最后禁用TLS 1.3。 tls priorities=“正常:%SERVERu优先级:%COMPAT:-RSA:-VERS-SSL3.0:-ARCFOUR-128:-VERS-TLS1.0:-VERS-TLS1.1:-VERS-TLS1.3” 保存并关闭文件。然后重启ocserv。 sudo systemctl重启ocserv 注意:如果您在ocserv日志中看到SSL 3.3短语,请不要惊慌。SSL 3.3是TLS 1.2的另一个词。您正在使用安全的TLS连接。 收尾 我希望本教程能帮助您在OpenConnect VPN服务器中设置证书身份验证。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?

    2022.03.23 浏览:125