我有一個網站與多個Web應用程序,依賴於最終用戶與他們的x509客戶端證書進行身份驗證。我們注意到,當由.Net應用程序處理時,相同的證書顯示與由Java應用程序處理的主題DN不同的主題DN,當DN包含電子郵件地址屬性時。x509證書與主題中的電子郵件地址是不同的java .vs網絡
在.NET中,我看到了服務器變量CERT_SUBJECT這樣的:
C=US, S=Delaware, L=Wilmington, O=IDFC Dev, OU=Test, CN=Richard Sand, [email protected]
在Java中,當我探討同一證書的X509證書對象(同一瀏覽器會話),主題是:
[email protected], CN=Richard Sand, OU=Test, O=IDFC Dev, L=Wilmington, ST=Delaware, C=US
忽略的屬性相反的順序(這是一個衆所周知的現象),我們遇到的問題是,在Java中的電子郵件地址屬性是EMAILADDRESS而在.NET中相同的屬性顯示爲E。
進一步挖,OpenSSL的示出了該輸出:
openssl.exe pkcs12 -in my.pfx -info
subject=/C=US/ST=Delaware/L=Wilmington/O=IDFC Dev/OU=Test/CN=Richard Sand/[email protected]
當我認爲無論是在IE或Firefox證書存儲相同的證書而,它們顯示出E =,例如:
E = [email protected]
CN = Richard Sand
OU = Test
O = IDFC Dev
L = Wilmington
S = Delaware
C = US
我知道在一些代碼中修改主題DN到另一個的「解釋」可能看起來微不足道,但問題是我們有兩個我們無法改變的COTS產品,並且在我們開始討論我想要解決的問題之前瞭解哪些(或兩者?)正確,如果是在某些層上導致了差異。 RFC似乎都參考EMAILADDRRESS,但據說IE和FF以及.Net應用似乎都使用「E」
任何人都可以解釋爲什麼會發生這種情況?
謝謝!
由於在他的回答「E」和EmailAddress中提到的@pedrofb是同義詞。每個平臺可以指定它自己的OID翻譯。至於主題,他們並不完全不同。這只是一個相反的順序。 – pepo