保护Tomcat Web应用

入门视频

▶️ https://www.youtube.com/watch?v=7d8afvHc2V4

下载

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

安装

Windows 与 Linux

没有特别的安装步骤, 只需要下载压缩包并解压即可。

macOS

下载dmg文件并拖拽Protector4J到Applications, 程序的实际内容在Protector4J.app/Contents/protector4j-mac

使用GUI工具加密JavaSE应用

进入Protector4J文件夹, 运行p4j-ui[.exe] , 你将会看到下面的用户界面

对于macOS用户, 像普通mac应用一样双击Protector4J.app即可

登录

如果你已经购买了授权, 请点击右上角的登录按钮,输入用户信息,如果没有授权,您仍然可以试用这个工具

选择应用类型

在程序类型页面点击"JavaSE Application"按钮。

选择需要加密的jar/war文件

选择需要加密的jar/war文件,可以单选或者多选

Options

Just encrypt jar files

只加密jar文件,不输出整个jre, 这个选项通常与KeySeed特性结合使用,用于更新现有的程序。

输出

Java版本选择

选择对应的Java版本, 支持Java 8, Java 11 and Java 17.

创建新文件夹

默认选择, 加密任务会在输出文件夹中创建一个名为 p4j-[task-id]的文件夹, 最终输出的结果存储在这个文件夹中。

KeySeed

默认情况下加密任务每次都会从服务端请求一个随机的key用于加密, 在不同加密任务中生成的文件无法兼容使用。 如果指定了KeySeed,相同的的KeySeed会生成相同的加密Key, 这个选项可以与之前的“Only Encrypt Jar Files”用于更新现有应用。这个选项仅对授权用户有效。

执行加密任务

请等待一段时间,待加密任务完成之后,您可以在输出文件夹中看到输出的加密应用。

运行加密的应用

进入到输出文件夹, 执行 tomcat/bin/startup.shtomcat/bin/startup.bat 以启动应用

META-INF/classes 在哪里

你可以在webapps文件夹中找到你的应用,但是原来的WEB-INF/classes不再存在了,为了能够保护应用结构,避免外部用户获取类名等信息,我们已经将WEB-INF/classes打包进WEB-INF/vlxapp.jar,这是我们私有的一个加密jar格式。

WEB-INF/vlxapp.jar

If the application is for macOS or Linux and is generated under Windows, please execute add-executable-permission.sh first to give the program executable permission.

注意事项

如果这个程序的目标平台是macOS或者Linux,但是在Windows下生成,在首次使用时请在目标平台上运行add-executable-permission.sh,以给予程序运行权限。

使用命令行工具加密Tomcat Web应用

配置文件

命令行工具需要指定一个任务文件作为参数

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

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

# 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文件夹执行下面命令

On Linux or macOS

对于macOS用户,你可以在Protector4J.app/Contents/protector4j-mac下找到cli工具

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

On Windows

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

> -t task type > > -f task file

可以运行p4j --help查看详细参数

添加用户信息运行

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

查看结果

加密任务完成之后,请前往输出文件夹查看结果。

运行加密的应用

进入到输出文件夹, 执行 tomcat/bin/startup.shtomcat/bin/startup.bat 以启动应用

META-INF/classes 在哪里

你可以在webapps文件夹中找到你的应用,但是原来的WEB-INF/classes不再存在了,为了能够保护应用结构,避免外部用户获取类名等信息,我们已经将WEB-INF/classes打包进WEB-INF/vlxapp.jar,这是我们私有的一个加密jar格式。

WEB-INF/vlxapp.jar

If the application is for macOS or Linux and is generated under Windows, please execute add-executable-permission.sh first to give the program executable permission.

注意事项

如果这个程序的目标平台是macOS或者Linux,但是在Windows下生成,在首次使用时请在目标平台上运行add-executable-permission.sh,以给予程序运行权限。