檢查該網域是否存在 DNS 記錄

檢查該網域是否存在 DNS 記錄

我有以下入口清單文件:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  namespace: fsm
  name: fsm
  labels:
    app: fsm
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /$2
    cert-manager.io/issuer: "letsencrypt-staging"
spec:
    tls:
    - hosts: 
      - k8s-cluster.int
      secretName: quickstart-example-tls
    rules:    
    - host: k8s-cluster.int
      http:
        paths:
          - path: /fsm(/|$)(.*)
            backend:
              serviceName: fsm
              servicePort: 8081

我正在使用 VMware 和 Vsphere。我沒有類似的域名www.google.com,只是一個 DNS 名稱,即 k8s-cluster 和網域 .int(在我公司內部)。當我嘗試生成證書時,我收到此錯誤: "msg"="error waiting for authorization" "error"="acme: authorization error for k8s-cluster.int: 400 urn:ietf:params:acme:error:dns: DNS problem: NXDOMAIN looking up A for k8s-cluster.int - check that a DNS record exists for this domain" "dnsName"="k8s-cluster.int" "resource_kind"="Challenge" "resource_name"="quickstart-example-tls-w7vj9-4141989927-3312743172" "resource_namespace"="fsm" "resource_version"="v1" "type"="HTTP-01"

這個問題會因為k8s-cluster.int在內網而出現嗎?如果我捲曲 k8s-cluster.int

<html>
<head><title>308 Permanent Redirect</title></head>
<body>
<center><h1>308 Permanent Redirect</h1></center>
<hr><center>nginx/1.19.1</center>
</body>
</html>

所以,我認為 DNS 是有效的。

答案1

您嘗試使用 ACME,這是 Let's Encrypt 使用的。 ACME 協定基本上是一個自動 DNS 網域驗證,它為您提供「網域驗證」憑證。它檢查帶有請求名稱的 DNS 記錄是否確實指向請求伺服器(或在請求伺服器的控制之下),這「證明」該伺服器被允許擁有此類憑證。

這意味著只能對全域 DNS 樹中的網域驗證。您使用的“.int”後綴在全域 DNS 樹中不存在(或它存在,但您的名字不存在或不屬於您)。這不是 ACME 可以進行「網域驗證」的內容。

因此您無法使用 ACME 為該名稱產生憑證。對不起。

您的選擇是:

  • 實例化您自己的「內部」CA,使其根憑證在每台相關電腦上受信任,然後用它產生憑證。例如,這可能是 MS AD 認證服務。這將需要一些工作來實例化和支援 CA,但您將能夠繼續使用“.int”;
  • 使用全域註冊網域的子網域,即將您的「.int」字尾變更為「.int.example.com」之類的內容,其中 example.com 是您購買和委託的網域。例如,您可以設定一些反向代理並將所有「內部」名稱指向全域 DNS 中該代理程式的公共位址,以便能夠將 ACME 用於您的「內部」主機。

經過多年的網路工程師經驗,我最終選擇了第二個選項。我從不在內部服務中使用“獨立的私有內部”名稱,例如“.int”、“.local”、“.lan”等,即使我知道我不會將它們與“外部世界”連接起來,即使它們物理上與互聯網斷開連接。我總是使用源自我擁有的全球域名的名稱。這為我節省了很多工作。當我有時遇到使用這些「獨立」名稱的網路時,幾乎總是有一些骯髒的怪癖來解決晦澀的問題,如果他們使用全域名稱,則不需要這些怪癖。

相關內容