保护 Tomcat Web 应用程序

入门视频

▶️ YouTube

▶️ Bilibili

下载

访问 https://protector4j.com/download 下载最新版本

安装

Windows 和 Linux

无需特殊安装步骤,只需下载压缩包并解压即可。

macOS

下载 dmg 文件,将 Protector4J 拖动到 Applications。该工具的实际内容位于 /Applications/Protector4J.app/Contents/protector4j-mac

使用 GUI 工具加密 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 启动应用程序。

WEB-INF/classes 去哪了

您可以在 webapps 文件夹中找到您的应用程序,但原始的 WEB-INF/classes 不再存在。为了保护应用程序的结构并防止外部用户访问类名等信息,我们已将 WEB-INF/classes 打包到 WEB-INF/vlxapp.jar 中。这是我们的私有加密 jarx 格式。

注意事项

如果此程序的目标平台是 macOS 或 Linux,但在 Windows 上构建,请在目标平台上执行 add-executable-permission.sh 以授予程序执行权限。

使用 CLI 工具加密 Tomcat Web 应用程序

配置文件

CLI 工具需要指定任务文件作为参数。

protector4j/task-templates 文件夹中找到 tomcat-task.yml,复制并修改。

# 可用值: 8,11,17,21
javaVersion: 8

# 可用值: 9,10
tomcatVersion: 9

# 需要加密的 war 文件
warFiles: []
# 仅加密 jar 文件,不部署运行时
# 升级现有应用程序时使用此选项
onlyEncryptJarFiles: false

## [ 输出选项 ]
# 输出文件夹
outputFolder: ''
# 为应用程序创建新的唯一文件夹,文件夹名类似 p4j-<taskId>
createNewFolder: true
# 固定密钥种子,仅对已授权用户有效
# 使用相同密钥种子加密的 jar 可以混合使用
keySeed: ''
# 目标平台,可用值: [win, linux, mac] 或留空表示当前平台
# 如需 win32、linux32 和 linux-aarch64 支持,需要购买扩展,请访问 https://protector4j.com/addons
platforms: []

执行加密任务

进入 Protector4J 文件夹,执行以下命令。

Linux 或 macOS

macOS 用户可以在 Protector4J.app/Contents/protector4j-mac 找到 CLI 工具。

./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 启动应用程序。

WEB-INF/classes 去哪了

您可以在 webapps 文件夹中找到您的应用程序,但原始的 WEB-INF/classes 不再存在。为了保护应用程序的结构并防止外部用户访问类名等信息,我们已将 WEB-INF/classes 打包到 WEB-INF/vlxapp.jar 中。这是我们的私有加密 jarx 格式。

注意事项

如果此程序的目标平台是 macOS 或 Linux,但在 Windows 上构建,请在目标平台上执行 add-executable-permission.sh 以授予程序执行权限。