2017-01-16 43 views
3

我有一個REST後端,可以基於使用客戶端證書的X509身份驗證使用。從客戶端到REST後端的角度2 X509身份驗證

現在我有一個用Angular 2編寫的前端,它也應該使用X509身份驗證,並將其進一步提供給REST後端。

我不明白的是如何將客戶端證書從Angular 2前端轉發到REST後端進行身份驗證。是否有可能或者應該使用一個安全域作爲前端和客戶端之間的X509身份驗證以及第二個安全域作爲前端和後端之間的X509身份驗證?

+0

我有同樣的確切的問題,你有沒有管理的SSLOptions從哪裏找到解決方案? – Sleeper9

回答

1

如果您使用的是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 [email protected] 
     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> 

重新啓動的Apache2後,將提示用戶輸入一個證書,該證書轉發到後端得益於+ ExportCertData