世上根本就沒有HTTPS協議,只有HTTP協議。——知乎某答友
某天,收到領導指示:學習一下X.509相關原理。
很多開發者可能和我一樣覺得X.509這個詞很陌生,但其實我們經常和它打交道,屬於典型的「日用而不知」的東西。
那麼X.509是什麼呢?
X.509是一種
數字證書的
格式標準。
應用很廣泛,現在HTTPS依賴的SSL證書使用的就是使用的X.509格式。這也就是說,每當我們打開https開頭的網站都會用到它。
格式標準
簡單地說,格式標準就像寫HTML文件時的規範:開頭聲明文檔類型,html
作為根標籤,元信息放在head
標籤中,頁面內容放在body
標籤中等等。
當然這個例子不是那麼貼切,因為實際上不按照這個格式編寫的html文件瀏覽器也能解析出來。更貼切的例子應該是JSON文件格式,規定了嵌套關係必須用大括弧,數組必須用中括弧,字元串必須用雙引號等等,如果違反了一條其中的規則,那麼就無法被正確的解析。
這個標準的具體內容是什麼呢?
X.509規定的格式大致如下:
版本號 序列號 簽名演算法 頒發者 證書有效期 開始日期 終止日期 主題 主題公鑰信息 公鑰演算法 主體公鑰 頒發者唯一身份信息(可選) 主題唯一身份信息(可選) 擴展信息(可選) 簽名
下圖是某網站的 X.509 證書信息