首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Eclipse 插件簽名機制深度解析:從未簽名到可信部署

     編輯:Java 相關知識

Eclipse 通過數字簽名驗證插件可信度,分為未簽名、已簽名、可信、不可信、過期五類。本文實戰演示:創建未簽名插件 → Keytool/Jarsigner 簽名 → 驗證簽名文件結構 → Eclipse/Expeditor 運行時驗證行為差異 → 過期證書處理。

插件五大分類

插件分類圖

  • 未簽名:IDE 默認生成
  • 已簽名:經 Jarsigner 簽名
  • 可信:簽名證書受信任 (受信 Keystore)
  • 不可信:自我簽名或非受信 CA
  • 過期:證書有效期已過

基礎:創建未簽名更新站點

  1. Plugin Project: HelloWorld
  2. Feature Project: HelloWorld.feature 引用插件
  3. Update Site Project: HelloWorld.updatesite 添加 Feature → Build

Eclipse Update Manager 安裝提示 "unsigned feature" 警告;Expeditor 同樣警告並提供接受/拒絕選項。

插件類型

Eclipse 未簽名警告

Expeditor 未簽名警告

簽名工具鏈:Keytool + Jarsigner

創建 Keystore 與自簽證書

keytool -genkey -dname "cn=Li Xing Xing, ou=CDL, o=IBM, c=CN" 
  -alias business -keypass key123 
  -keystore C:\keystore\mykeystore -storepass store123 -validity 180
  • 生成 `mykeystore` (JKS 格式)
  • 實體別名 `business`,DSA 1024bit,SHA1withDSA,180 天有效期

生成的 Keystore

簽名 Feature/Plugin JAR

jarsigner -keystore C:\keystore\mykeystore -storepass store123 -keypass key123
  C:\workspace\HelloWorld.update\features\HelloWorld.feature_1.0.0.jar business

jarsigner -keystore C:\keystore\mykeystore -storepass store123 -keypass key123
  C:\workspace\HelloWorld.update\plugins\HelloWorld_1.0.0.jar business

輸出警告:6 個月後證書過期。

Feature 簽名警告

Plugin 簽名警告

簽名產物:META-INF 兩文件

META-INF 文件

  • BUSINESS.SF:簽名文件,RFC822 格式,含摘要算法、清單摘要、各文件摘要
  • BUSINESS.DSA:二進制名塊,存儲對 .SF 的數字簽名 (同名異擴展名,算法決定擴展:.DSA/.RSA/.PGP)

DSA 文件內容

驗證簽名

jarsigner -keystore C:\keystore\mykeystore -storepass store123 -verify -verbose -certs
  C:\workspace\HelloWorld.update\plugins\HelloWorld_1.0.0.jar

輸出簽名信息、證書鏈、有效期。

驗證輸出

已簽名插件安裝體驗

Eclipse 提示 "You are about to install a signed feature",顯示證書詳情 (主體、頒發者、算法)。用戶傾向信任。

Eclipse 簽名提示

Expeditor 彈出三選項對話框,點擊「View Certificate Details」可見 Version、Issued by/to、Signature Algorithm,信息更豐富鼓勵信任。

Expeditor 簽名提示

證書詳情

過期證書處理

修改系統時間超過有效期 (如 02-14-2009 > 02-13-2009)。

修改系統時間

Jarsigner 驗證顯示 "EXPIRED CERTIFICATE"。

過期驗證

Eclipse/Expeditor 均顯著警告 "EXPIRED CERTIFICATE",但仍允許用戶強制安裝 (風險自負)。

Eclipse 過期警告

Expeditor 過期警告

總結

Eclipse/Expeditor 供應子系統完整實現簽名信任鏈:創建 → 簽名 → 驗證 → 運行時策略。樣例適用於所有基於 Eclipse 的產品安全部署。源碼:配套源碼

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved