保護 Tomcat Web 應用程式

入門影片

▶️ YouTube

▶️ Bilibili

下載

前往 https://protector4j.com/download 下載最新版本

安裝

Windows 和 Linux

無需特殊安裝步驟,只需下載壓縮包並解壓即可。

macOS

下載 dmg 檔案並將 Protector4J 拖曳到 Applications 資料夾中。此工具的實際內容位於 /Applications/Protector4J.app/Contents/protector4j-mac

使用圖形介面工具加密 Tomcat Web 應用程式

進入 Protector4J 資料夾,執行 p4j-ui[.exe],您將看到以下使用者介面。

對於 macOS 使用者,只需像普通 Mac 應用程式一樣雙擊 Protector4J.app 即可。

登入

如果您已購買授權,請點擊右上角的登入按鈕並輸入您的使用者資訊。如果您沒有授權,仍然可以試用此工具。

選擇應用程式類型

在應用程式類型頁面上點擊「Tomcat Web Application」按鈕。

選擇需要加密的 jar/war 檔案

選擇需要加密的 jar/war 檔案,您可以選擇一個或多個。

選項

僅加密 jar 檔案

僅加密 jar 檔案,不部署整個 JRE。此選項通常與 KeySeed 功能結合使用,用於更新現有程式。

輸出

Java 版本選擇

選擇 Java 版本,支援 Java 8、Java 11、Java 17 和 Java 21

建立新資料夾

預設為選取狀態,加密任務將在輸出資料夾中建立名為 p4j-[task-id] 的資料夾,輸出結果儲存在此資料夾中。

KeySeed

加密任務預設會從伺服器請求一個隨機金鑰進行加密。不同加密任務產生的檔案無法一起使用。 如果指定了 KeySeed,相同的 KeySeed 將產生相同的加密金鑰。此選項可以與前面的「僅加密 Jar 檔案」選項搭配使用,來更新現有應用程式。 此選項僅對已授權使用者有效。

執行加密任務

請稍候片刻,加密任務完成後,您可以在輸出資料夾中查看加密應用程式的輸出結果。

執行加密後的應用程式

進入輸出資料夾,然後進入 tomcat/bin,執行 startup.shstartup.bat 以啟動應用程式。

META-INF/classes 在哪裡

您可以在 webapps 資料夾中找到您的應用程式,但原始的 WEB-INF/classes 已不存在。為了保護應用程式的結構並防止外部使用者存取類別名稱等資訊,我們已將 WEB-INF/classes 打包成 WEB-INF/vlxapp.jar。這是我們私有的加密 JARX 格式。

注意事項

如果此程式的目標平台是 macOS 或 Linux,但是在 Windows 上建構,請在首次啟動前在目標平台上執行 add-executable-permission.sh 以授予程式執行權限。

使用命令列工具加密 Tomcat Web 應用程式

組態檔

命令列工具需要指定一個任務檔案作為參數。

protector4j/task-templates 資料夾中找到 tomcat-task.yml,複製並修改它。

# Available values: 8,11,17,21
javaVersion: 8

# Available values: 9,10
tomcatVersion: 9

# The war files that need to be encrypted
warFiles: []
# Only encrypt the jar files, do not deploy the runtime
# This option is used while upgrading an existing application
onlyEncryptJarFiles: false

## [ Output Options ]
# The output folder
outputFolder: ''
# Create a new and unique folder for the application, the folder name is like p4j-<taskId>
createNewFolder: true
# Fixed key seed, only avaiable for licensed user
# Jars encrypted in different tasks can be used together with same key seed
keySeed: ''
# The target platforms, available values: [win, linux, mac] or emtpy for current platforms
# if you need the support for win32, linux32 and linux-aarch64, the addon need to be purchased, please visit https://protector4j.com/addons
platforms: []

執行加密任務

進入 Protector4J 資料夾並執行以下命令。

Linux 或 macOS

對於 macOS 使用者,您可以在 Protector4J.app/Contents/protector4j-mac 找到命令列工具。

./p4j -t tomcat -f path-of-task-file

Windows

p4j -t tomcat -f path-of-task-file

您可以執行 p4j --help 來查看詳細參數。

使用帳號資訊執行

./p4j -t tomcat -f path-of-task-file -u email -p password

查看結果

加密任務完成後,請前往輸出資料夾查看結果。

執行加密後的應用程式

進入輸出資料夾,然後進入 tomcat/bin,執行 startup.shstartup.bat 以啟動應用程式。

META-INF/classes 在哪裡

您可以在 webapps 資料夾中找到您的應用程式,但原始的 WEB-INF/classes 已不存在。為了保護應用程式的結構並防止外部使用者存取類別名稱等資訊,我們已將 WEB-INF/classes 打包成 WEB-INF/vlxapp.jar。這是我們私有的加密 JARX 格式。

注意事項

如果此程式的目標平台是 macOS 或 Linux,但是在 Windows 上建構,請在首次啟動前在目標平台上執行 add-executable-permission.sh 以授予程式執行權限。