DCOS之MarathonSSL与基本认证篇

来源:互联网 发布:java 所有打印写入txt 编辑:程序博客网 时间:2024/05/22 09:39

DCOS中的Marathon可以通过SSL进行API端点的安全访问也恶意通过HTTP基本接入认证进行有限访问。如果计划使用基本认证方式,我们建议使用SSL方式,因为其他方式由于用户名和密码未被加密,信息容易被其他方获取。

 

 5.1 使用SSL

如果已经有了Java keystore,可以将其连通密码一起通过SSL传递至DCOS组件Marathon

$./bin/start –master zk://10.134.29.134:2181 10.134.29.135:2181,10.134.29.136:2181/mesos –zk zk://10.134.29.134:2181,10.134.29.135:2181,10.134.29.136:2181/marathon –ssl_keystore_path marathon.jks

–ssl_keystore_password $MARATHON_JKS_PASSWORD

在默认情况下,Marathon使用8443端口来对外提供SSL服务(可以通过–https_port命令来更改端口),一旦Marathon运行,将会通过HTTPS端口来接入API以及UI:

$curl  https://l0134.29.134:8443/v2/apps

 

 5.2 生成带有SSL密钥的keystore

需要注意的是:现在的浏览器以及大部分工具,将会对于DCOS的组件Marathon API以及UI的访问进行告警,除非SSL已被CA授信,当然也可以直接购买。

 

①、通过OpenSSL生成RSA私有密钥

将密码设置为MARATHON_KEY_PASSWORD变量

$openssl genrsa -des3

-out marathon.key

-passout “env:MARATHON_KEY_PASSWORD”

②、通过下面的方法为密钥获得认证

-推荐从知名的CA购买认证。这个将确保Marathon实例的API以及UI信

任SSL认证,为用户减少额外的步奏

-(不安全方式)为密钥生成一个认证。这个命令会向与keystore交互的信息进行提示。“Common Name”必须是要使用认证的机器的限定主机名。

下面的命令会读取MARATHON_KEY_PASSWORD环境变量

$openssl req -new -x509

-key marathon.key

-passin “env:MARATHON_KEY_PASSWORD”

-out self-signed-marathon.pem

 

③、将密钥和认证文件合并至PKCS12格式的文件中,PKCS12这种格式也是Java keystore用的格式。如果接受的认证文件不是.pem格式,则需要转换为.pem。

将密码设置为MARATHON_KEY_PASSWORD变量

将PKCS密码设置为MARATHON_PKCS_PASSWORD变量

$openssl pkcs12  -inkey marathon.key

-passin “env:MARATHON_KEY_PASSWORD”

-name marathon

-in trusted.pem

-password “env:MARATHON_PKCS_PASSWORD”

-chain -CAFile “trustedCA.crt”

-export -out marathon.pkcs12

 

④、导入keystore

将PKCS密码设置为MARATHON_PKCS_PASSWORD变量

将JKS密码设置为MARATHON_JKS_PASSWORD变量

$keytool -importkeystore -srckeystore marathon.pkcs12

-srcalias marathon

-srcstorepass $MARATHON_PKCS_PASSWORD -srcstoretype PKCS12

-destkeystore marathon.jks

-deststorepass $MARATHON_JKS_PASSWORD

 

⑤、通过创建的keystore以及其密码启动DCOS的组件Marathon

将JKS密码设置为MARATHON_JKS_PASSWORD变量

$./bin/start –master

zk://10.134.29.134:2181 10.134.29.135:2181,10.134.29.136:2181/mesos

–zk zk://10.134.29.134:2181,10.134.29.135:2181,10.134.29.136:2181/marathon

–ssl_keystore_path marathon.jks

–ssl_keystore_password $MARATHON_JKS_PASSWORD

 

⑥、通过HTTPS端口接入DCOS的组件Marathon API与UI(默认端口8443)

https://10.134.29.134:8443

 

 5.3 启用基础认证

备注:虽然可以使用基本认证,但是我们强烈建议使用SSL。如果SSL不可用,

Marathon获取的用户名和密码将会使用明文形式进行传输,可能会被第三方获取到相关信息。

将用户名和密码使用”:”进行隔离传递至 –http_credentials 命令将会开启基本认证 。备注:用户名不能包含”:”.

$ ./bin/start –master –master

zk://10.134.29.134:2181 10.134.29.135:2181,10.134.29.136:2181/mesos

–zk zk://10.134.29.134:2181,10.134.29.135:2181,10.134.29.136:2181/marathon

 

–http_credentials “cptPicard:topSecretPa$$word”

–ssl_keystore_path /path/to/marathon.jks

–ssl_keystore_password $MARATHON_JKS_PASSWORD

作者:中移苏研邹能人

欢迎关注中移苏研DCOS公众号

qrcode_for_gh_f74128c040ae_430(1)

原文链接:http://www.zoues.com/index.php/2016/03/31/dcos-marathonssl/

0 0
原创粉丝点击