14.4. 在 Java 安全管理器下运行子系统
Java 服务可以选择使用安全管理器,为要执行的应用程序定义不安全和安全操作。安装子系统后,它们会自动启用 Security Manager,这意味着每个 Tomcat 实例都从运行的安全管理器开始。
14.4.1. 关于安全管理器策略文件
当在 Java 安全管理器内运行的五个 Java 子系统(CA、T OCSP、KRA、TKS 和 TPS)运行时,它们使用三组策略的组合:
- 位于
/usr/share/tomcat/conf
目录中的默认 Tomcat 策略中的catalina.policy
文件;每当常规 Tomcat 文件更新时都会更新。 pki.policy
文件,位于由子系统实例提供的 /var/lib/pki/instance_name/subsystem_type/conf
目录中。- 在
/var/lib/pki/instance_name/subsystem_type/conf
目录中的custom.policy
文件,其中包含用户定义的安全策略。
当 Tomcat 服务开始创建修改后的
catalina.policy
文件时,这三个文件也会放在 /var/lib/pki/instance_name/subsystem_type/conf
目录中,它用于实例。
默认
pki.policy
文件包含授予 PKI 子系统使用的 Tomcat、LDAP 和 symkey 服务不受限制的访问权限。例如:
// These permissions apply to Tomcat java as utilized by PKI instances grant codeBase "file:/usr/share/java/tomcat/-" { permission java.security.AllPermission; };
custom.policy
文件默认为空;管理员可在该文件中写入策略,除了给定的 PKI 策略和 Tomcat 策略外,它还将使用该文件。
14.4.2. 启动没有 Java 安全管理器的子系统实例
PKI Tomcat 实例下配置的所有 Java 子系统均会在 Java 安全管理器下自动运行(除非通过覆盖
/etc/pki/default.cfg
文件中的 [Tomcat] 部分中的 pki_security_manager=true
创建实例)。但是,可以启动或重启实例,并在不启动 Java 安全管理器的情况下运行 实例,如下所示。
过程 14.1. 在不使用 Java 安全管理器的情况下启动实例
- 停止该实例。
# pki-server stop instance_name
- 编辑
/etc/sysconfig/instance_name
文件并关闭安全管理器:SECURITY_MANAGER="false"
- 启动实例。
# pki-server start instance_name