让我们加密Certbot certonly,pem文件到jks并创建Docker镜像推送到Azure容器注册表并创建Kubernetes Pod,无法加载页面?

问题描述 投票:0回答:1

我刚刚安装了 certbot,并使用了以下命令:
sudo certbot certonly --manual -d MYDOMAIN.westeurope.cloudapp.azure.com

zerossl 方法已用于重新生成证书,因此(Let's Encrypt)certbot 不会要求域所有权,只是打印它已成功获得证书并创建以下文件: cert.pem、chain.pem、fullchain.pem、privkey.pem

我只是从所有 pem 文件创建一个 .JKS(Java 密钥库)文件:

sudo chown -R jenkins /etc/letsencrypt/live/MYDOMAIN.westeurope.cloudapp.azure.com/
sudo chmod -R 777 /etc/letsencrypt/live/MYDOMAIN.westeurope.cloudapp.azure.com/
cd /etc/letsencrypt/live/MYDOMAIN.westeurope.cloudapp.azure.com/

sudo cat *.pem > fullcert.pem
openssl pkcs12 -export -out fullcert.pkcs12 -in fullcert.pem
keytool -genkey -keyalg RSA -alias MYDOMAIN -keystore MYDOMAIN.jks
keytool -delete -alias MYDOMAIN -keystore MYDOMAIN.jks
keytool -v -importkeystore -srckeystore fullcert.pkcs12 -destkeystore MYDOMAIN.jks -deststoretype JKS

fullcert.pemfullcert.pkcs12MYDOMAIN.JKS已成功创建。我检查了日志文件,似乎是合法的,良好的验证日期,私钥,模数,包含根证书等......所以列表是:
cert.pem、chain.pem、fullchain.pem、privkey.pem、fullcert.pem、fullcert.pkcs12、MYDOMAIN.jks 我将工作 jks 与此进行了比较,除了日期之外,数据是相同的。

然后我将其放在我的 Dockerfile 旁边,该文件根据我的 .JKS 文件创建 Docker 映像并将其推送到 ACR (Azure 容器注册表)

git clone https://[email protected]/team/docker_jira.git /home/jenkins/tmp/docker_jira
chmod -R 775 /home/jenkins/tmp/docker_jira/docker_MYDOMAIN
sudo chmod 777 /var/run/docker.sock
cd /home/jenkins/tmp/docker_jira/docker_MYDOMAIN/; docker build -t ssljira .

创建成功

az acr login --name USER
docker tag ssljira asd.wasdcr.io/ssljira:MYDOMAIN-08-16-nocer
docker push asd.wasdcr.io/ssljira:MYDOMAIN-08-16-nocer

成功推送至ACR

我只是修改了 .YAML 文件,我将 Kubernetes 镜像更改为新的:

apiVersion: v1
kind: Pod
metadata:
  name: MYDOMAIN
  labels:
    name: MYDOMAIN
spec:
  securityContext: 
    runAsUser: 1000
    runAsGroup: 1000
    fsGroup: 1000
  containers:
    - name: jira
      image: asd.wasdcr.io/ssljira:MYDOMAIN-08-16-nocer
      env:
        - name: CATALINA_OPTS
          value: "-Dfile.encoding=UTF-8 -Xms8g -Xmx14g"
      ports:
        - containerPort: 8443
      volumeMounts:
        - mountPath: /var/atlassian/application-data/jira
          name: jira-data
  volumes:
    - name: jira-data
      azureDisk:
        kind: Managed
        diskName: apps-test-jira-disk
        diskURI: /subscriptions/8987ce65-1273-4e03-ab95-6f92e3eda7c2/resourceGroups/MC_Test_Apps_Jira_appstestjira_westeurope/providers/Microsoft.Compute/disks/apps-test-jira-disk

库伯内特斯:

az account set -s [Subscription ID]
kubectl config use-context MYDOMAIN
kubectl delete -f .../jira-podDEV-disk.yaml
kubectl create -f .../jira-podDEV-disk.yaml

我刚刚检查过:Kubectl get pods 似乎合法: KUBERNETES PODS

最后,页面无法加载: CANT LOAD THIS PAGE

我还查看了日志,.JKS 文件与用于证书交换的 .JKS 文件相同(显然,只是日期不同) 我没有收到任何错误消息,一切似乎都很好,但该网站无法正常工作。它甚至没有说证书已过期或无效,不,它只是不起作用...... 它基于:https://www.wissel.net/blog/2018/03/letsencrypt-java-keystore.html

请您给我任何提示、建议,我将不胜感激!!

kubernetes certificate certbot jks acr
1个回答
0
投票

我发现日志文件中存在差异(不是日期或其他任何内容),不起作用的 .jks 包含一个:

  [CertificatePolicyId: [1.3.6.1.4.1.44947.1.1.1]
[PolicyQualifierInfo: [
  qualifierID: 1.3.6.1.5.5.7.2.1
  qualifier: 0000: 16 1A 68 74 74 70 3A 2F 2F 63 70 73 2E 6C 65 74 ..http://cps.let
0010: 73 65 6E 63 72 79 70 74 2E 6F 72 67 sencrypt.org
]] ]

缺少这个会不会导致无法生成有效的证书?

© www.soinside.com 2019 - 2024. All rights reserved.