前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Marathon之SSL与基本认证篇

Marathon之SSL与基本认证篇

作者头像
zouyee
发布2021-02-01 15:30:47
5400
发布2021-02-01 15:30:47
举报
文章被收录于专栏:Kubernetes GOKubernetes GO

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

5.1 使用SSL

如果已经有了Javakeystore,可以将其连通密码一起通过SSL传递至Marathon

$./bin/start--masterzk://10.134.29.134:2181 10.134.29.135:2181,10.134.29.136:2181/mesos --zkzk://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

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

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

将密码设置为MARATHON_KEY_PASSWORD变量

$opensslgenrsa-des3

-outmarathon.key

-passout"env:MARATHON_KEY_PASSWORD"

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

-推荐从知名的CA购买认证。这个将确保Marathon实例的API以及UI信任SSL认证,为用户减少额外的步奏,(不安全方式)为密钥生成一个认证。这个命令会向与keystore交互的信息进行提示。“Common Name”必须是要使用认证的机器的限定主机名。

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

$opensslreq-new-x509

-keymarathon.key

-passin"env:MARATHON_KEY_PASSWORD"

-out self-signed-marathon.pem

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

将密码设置为MARATHON_KEY_PASSWORD变量

将PKCS密码设置为MARATHON_PKCS_PASSWORD变量

$opensslpkcs12 -inkeymarathon.key

-passin"env:MARATHON_KEY_PASSWORD"

-namemarathon

-intrusted.pem

-password"env:MARATHON_PKCS_PASSWORD"

-chain-CAFile"trustedCA.crt"

-export-outmarathon.pkcs12

④、导入keystore

将PKCS密码设置为MARATHON_PKCS_PASSWORD变量

将JKS密码设置为MARATHON_JKS_PASSWORD变量

$keytool-importkeystore -srckeystore marathon.pkcs12

-srcaliasmarathon

-srcstorepass$MARATHON_PKCS_PASSWORD-srcstoretypePKCS12

-destkeystoremarathon.jks

-deststorepass$MARATHON_JKS_PASSWORD

⑤、通过创建的keystore以及其密码启动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_pathmarathon.jks

--ssl_keystore_password$MARATHON_JKS_PASSWORD

⑥、通过HTTPS端口接入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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-03-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DCOS 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 5.1 使用SSL
  • 5.2 生成带有SSL密钥的keystore
  • 5.3 启用基础认证
相关产品与服务
SSL 证书
腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档