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

从客户端到REST后端的Angular 2 X509身份验证,rest,angular,authentication,certificate,x509,Rest,Angular,Authentication,Certificate,X509,我有一个REST后端,可以基于使用客户端证书的X509身份验证来使用它 现在我有一个用Angular 2编写的前端,它也应该使用X509身份验证,并进一步向REST后端提供它 我不明白的是如何将客户端证书从Angular 2前端转发到REST后端进行身份验证。我是否可以或应该使用一个安全域作为前端和客户端之间的X509身份验证,使用第二个安全域作为前端和后端之间的X509身份验证?如果您使用Apache2 httpd server来托管Angular2应用程序,您可以在您的系统上安装mod_ss

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

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


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

如果您使用Apache2 httpd server来托管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>

斯伦金安
SSLCertificateFile/var/www/html/certs/localhost.crt
SSLCertificateKeyFile/var/www/html/certs/key.pem
SSLCACertificateFile/var/www/html/certs/ca.crt
SSLVerifyClient要求
SSLVerifyDepth 2
SSLOptions+ExportCertData
服务器管理员info@example.com
服务器名本地主机
DocumentRoot/var/www/html
ErrorLog/var/www/logs/error.log
CustomLog/var/www/logs/access.log组合
代理通行证/服务ajp://localhost:8009/services
ProxyPassReverse/servicesajp://localhost:8009/services
SSLOptions+ExportCertData
DocumentRoot/var/www/html
选项-索引
命令允许,拒绝
通融

重新启动apache2后,它现在会提示用户输入证书,并将该证书转发到后端,这要感谢SSLOptions+ExportCertData是一个很好的例子,它完全涵盖了您的问题。它描述了如何处理Node.js服务器上的服务器证书,以及Angular应用程序和浏览器中的客户端证书。

我也遇到了同样的问题,从那以后您找到了解决方案吗?