我运行了以下命令:
kubectl create secret tls nexus-tls --cert cert.crt --key privateKey.pem
其中cert.crt
包含我的证书,privateKey.pem
包含我的私钥(使用CloudFlare提供)。
然后我使用以下配置安装了stable/sonatype-nexus
Helm图表:
nexusProxy:
env:
nexusDockerHost: containers.<<NEXUS_HOST>>
nexusHttpHost: nexus.<<NEXUS_HOST>>
nexusBackup:
enabled: true
nexusAdminPassword: <<PASSWORD>>
env:
targetBucket: gs://<<BACKUP_BUCKET_NAME>>
persistence:
storageClass: standard
ingress:
enabled: true
path: /*
annotations:
kubernetes.io/ingress.allow-http: true
kubernetes.io/tls-acme: true
kubernetes.io/ingress.class: gce
kubernetes.io/ingress.global-static-ip-name: <<STATIC_IP_ADDRESS_NAME>>
tls:
enabled: true
secretName: nexus-tls
persistence:
storageClass: standard
storageSize: 1024Gi
resources:
requests:
cpu: 250m
memory: 4800Mi
通过运行以下命令:
helm install -f values.yaml stable/sonatype-nexus
此图表的可能配置值记录在here中。
访问http://nexus.<<NEXUS_HOST>>
时,我可以访问Nexus存储库。但是,当我访问https://nexus.<<NEXUS_HOST>>
时,会收到混合内容警告,因为正在提供HTTP资源。
如果我将nexusProxy.env.enforceHttps
环境变量设置为true,则当我访问https://nexus.<<NEXUS_HOST>>
时,我会收到如下响应:
HTTP access is disabled. Click here to browse Nexus securely: https://nexus.<<NEXUS_HOST>>.
如何确保Nexus的安全投放?我是否犯了配置错误,还是问题出在其他地方?
答案 0 :(得分:0)
如果您的ELB提供纯HTTP流量,请将其添加到LoadBalancer服务注释中。
privateFunc()