从客户端到 REST 后端的 Angular 2 X509 身份验证

use*_*721 7 authentication rest certificate x509 angular

我有一个 REST 后端,可以使用客户端证书基于 X509 身份验证来使用。

现在我有一个用 Angular 2 编写的前端,它也应该使用 X509 身份验证,并进一步将其提供给 REST 后端。

我不明白的是如何将客户端证书从 Angular 2 前端转发到 REST 后端进行身份验证。是否有可能或者我应该使用一个安全域作为前端和客户端之间的 X509 身份验证,使用第二个安全域作为前端和后端之间的 X509 身份验证?

小智 2

如果您使用 Apache2 httpd 服务器来托管 Angular2 应用程序,则可以在系统上安装 mod_ssl,具体取决于操作系统。

安装 mod_ssl 后,将创建一个新的配置文件。就我而言,它位于:/etc/httpd/conf.d/ssl.conf。放置以下配置,当然可以根据您的用例进行调整。

您需要拥有 CA 证书、由该 CA 签名的服务器证书以及服务器私钥。

<VirtualHost *:443>
         SSLEngine On
         SSLCertificateFile /var/www/html/certs/localhost.crt
         SSLCertificateKeyFile /var/www/html/certs/key.pem
         SSLCACertificateFile /var/www/html/certs/ca.crt
         SSLVerifyClient require
         SSLVerifyDepth 2
         SSLOptions +ExportCertData
         ServerAdmin info@example.com
         ServerName localhost
         DocumentRoot /var/www/html
         ErrorLog /var/www/logs/error.log
         CustomLog /var/www/logs/access.log combined
         ProxyPass /services ajp://localhost:8009/services
         ProxyPassReverse /services ajp://localhost:8009/services
         SSLOptions +ExportCertData
         DocumentRoot /var/www/html
            <Directory /var/www>
                    Options -Indexes
                    Order allow,deny
                    Allow from all
    </Directory>

</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

重新启动 apache2 后,它现在会提示用户输入证书,并通过 SSLOptions +ExportCertData 将该证书转发到后端