tremolosecurity/openunisons2idocker该镜像是OpenUnison的基础“构建器”镜像,旨在与Source-To-Image(S2I)配合使用。
S2I使用源代码和构建器Docker镜像生成新的Docker镜像。顾名思义,Source-To-Image负责将应用源代码转换为可执行Docker镜像。构建器镜像包含生成该可执行镜像所需的特定工具和逻辑。
有关如何使用和创建S2I构建器镜像的更多信息,请参见:[***]
OpenUnison是Tremolo Security([***]
文档可访问:[***]
要将此镜像与S2I配合使用,必须向s2i脚本传递以下之一:
本文档对部署做以下假设,下一节将详细介绍每个假设:
OpenUnison构建流程遵循简单的工作流,使用Apache Maven和覆盖插件将特定配置与标准OpenUnison构建结合,生成特定于部署的WAR文件,然后集成到最终容器镜像中。
!OpenUnison构建 diagram
Tremolo Security的GitHub仓库中提供了多个快速启动项目 - [***]
首先,克隆快速启动GitHub仓库:
bash$ git clone [***]
接下来,创建用于存放配置文件的目录:
bash$ mkdir local $ cd local
创建密钥库和TLS密钥
注意:确保密钥密码与密钥库密码相同
bash$ keytool -genkeypair -storetype PKCS12 -alias unison-tls -keyalg RSA -keysize 2048 -sigalg SHA256withRSA -keystore ./unisonKeyStore.p12 -validity 3650 Enter keystore password: Re-enter new password: What is your first and last name? [Unknown]: localhost.localdomain What is the name of your organizational unit? [Unknown]: demo What is the name of your organization? [Unknown]: demo What is the name of your City or Locality? [Unknown]: demo What is the name of your State or Province? [Unknown]: demo What is the two-letter country code for this unit? [Unknown]: demo Is CN=localhost.localdomain, OU=demo, O=demo, L=demo, ST=demo, C=demo correct? [no]: yes Enter key password for <unison-tls> (RETURN if same as keystore password):
创建OpenUnison会话密钥
注意:确保密钥密码与密钥库密码相同
bash$ keytool -genseckey -alias session-unison -keyalg AES -keysize 256 -storetype PKCS12 -keystore ./unisonKeyStore.p12
使用以下示例作为模板创建名为ou.env的文件。在相应行输入上述步骤中创建密钥库/密钥时使用的密码。
ou.env文件
propertiesOU_HOST=localhost.localdomain TEST_USER_NAME=testuser TEST_USER_PASSWORD=secret_password unisonKeystorePassword=start123 unisonKeystorePath=/etc/openunison/unisonKeyStore.p12
使用以下示例作为模板创建openunison.yaml文件:
注意:不要修改以下openunison.yaml文件中的路径值。此文件中的配置更改应仅限于TLS配置(如修改密码套件、添加客户端认证等)。
openunison.yaml
yaml--- open_port: 8080 open_external_port: 80 secure_port: 8443 secure_external_port: 443 secure_key_alias: "unison-tls" force_to_secure: true activemq_dir: "/tmp/amq" quartz_dir: "/tmp/quartz" client_auth: none allowed_client_names: [] ciphers: - TLS_RSA_WITH_RC4_128_SHA - TLS_RSA_WITH_AES_128_CBC_SHA - TLS_RSA_WITH_AES_256_CBC_SHA - TLS_RSA_WITH_3DES_EDE_CBC_SHA - TLS_RSA_WITH_AES_128_CBC_SHA256 - TLS_RSA_WITH_AES_256_CBC_SHA256 path_to_deployment: "/usr/local/openunison/work" path_to_env_file: "/etc/openunison/ou.env"
在构建容器镜像之前,下载适用于您平台的S2I二进制文件并添加到PATH - [***]
构建容器镜像:
bash$ s2i build /path/to/my/root/myproject tremolosecurity/openunisons2idocker local/openunison
将创建名为local/openunison的镜像并添加到本地Docker实例。该镜像包含OpenUnison和您的配置。使用以下命令启动容器,确保将/path/to/local替换为您环境中的实际路径:
bash$ docker run -p 8443:8443 -v /path/to/local:/etc/openunison:Z -e JAVA_OPTS='-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom' --name openunison local/openunison
OpenUnison现在应已运行。通过访问https://localhost.localdomain:8443/,使用用户名`testuser`和密码`secret_password`(或ou.env文件中使用的值,如果与示例不同)登录:
!OpenUnison登录页面
登录后:
!OpenUnison登录后页面
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务