从客户端到REST后端的Angular 2 X509身份验证
我有一个REST后端,可以基于使用客户端证书的X509身份验证来使用它 现在我有一个用Angular 2编写的前端,它也应该使用X509身份验证,并进一步向REST后端提供它从客户端到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
我不明白的是如何将客户端证书从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应用程序和浏览器中的客户端证书。我也遇到了同样的问题,从那以后您找到了解决方案吗?