ฉันกำลังพยายามตั้งค่าบริการประเภท Let's Encrypt ในเครือข่ายส่วนตัวด้วย Smallstep step-ca และ traefik
และฉันติดอยู่เพราะ step-ca ล้มเหลวในการตรวจสอบคำขอใบรับรองจาก traefik..
นี่คือสิ่งที่ฉันทำไปแล้ว
ฉันเปิดตัวบริการ step-ca ในคอนเทนเนอร์นักเทียบท่าตามที่อธิบายไว้ เอกสารนี้ บนเซิร์ฟเวอร์ที่มี IP "172.16.4.5" ฉันยังติดตาม เอกสารนี้เพื่อเพิ่มจุดเข้าใช้งาน.
บนเซิร์ฟเวอร์อื่น "172.16.4.4" ฉันเปิดตัวการกำหนดค่า docker-compose ด้วย Traefik 2.4 และบริการ "whoami" (เช่น ที่นี่ ตัวอย่างเป็นทางการ).
ชื่อโดเมนภายในทั้งหมดให้บริการโดยเซิร์ฟเวอร์ DNS ส่วนตัว และแต่ละเซิร์ฟเวอร์ก็แก้ไขชื่อโดเมนได้โดยไม่มีปัญหา
เซิร์ฟเวอร์และคอนเทนเนอร์ step-ca สามารถเข้าถึงเซิร์ฟเวอร์ 172.16.4.4 บนพอร์ต 80 และ 443 เซิร์ฟเวอร์ 172.16.4.4 และคอนเทนเนอร์ traefik สามารถเข้าถึง 172.16.4.5 ฉันติดตั้งใบรับรองรูทที่สร้างด้วย step-ca ในคอนเทนเนอร์ traefik ระหว่างการเริ่มต้น
ฉันได้ตั้งค่า traefik เพื่อใช้ TSL challenge Traefik เริ่มต้นการท้าทาย และฉันไม่รู้ว่าทำไม step-ca แจ้งข้อผิดพลาด
{"type":"urn:ietf:params:acme:error:connection","detail":"เซิร์ฟเวอร์
ไม่สามารถเชื่อมต่อกับเป้าหมายการตรวจสอบ"}}
ด้านล่างข้อผิดพลาดทั้งหมดที่เกิดขึ้นโดย step-ca :
INFO[0126] Duration=63.427116ms Duration-ns=63427116 field.time="2021-07-13T09:55:33Z" method=POST name=ca nonce=XX path=/acme/company.int/authz/XX โปรโตคอล =HTTP/1.1 referer= remote-address=172.16.4.4 request-id=xx response="{\"identifier\":{\"type\":\"dns\",\"value\":\"whoami .company.int\"},\"status\":\"pending\",\"challenges\":[{\"type\":\"dns-01\",\"status\":\" รอดำเนินการ\",\"โทเค็น\":\"XX\",\"url\":\"https://acme.company.int:9000/acme/company.int/challenge/XX/XX\"} ,{\"type\":\"http-01\",\"status\":\"pending\",\"token\":\"XX\",\"url\":\"https: //acme.company.int:9000/acme/company.int/challenge/XX/XX\"},{\"type\":\"tls-alpn-01\",\"สถานะ\":\" รอดำเนินการ\",\"โทเค็น\":\"XX\",\"url\":\"https://acme.company.int:9000/acme/company.int/challenge/XX/XX\", \"error\":{\"type\":\"urn:ietf:params:acme:error:connection\",\"detail\":\"เซิร์ฟเวอร์ไม่สามารถยืนยันเป้าหมายได้\"}}],\ "ไวด์การ์ด\":false,\"หมดอายุ\":\"2021-07-14T09:54:24Z\"}" size=872 status=200 user-agent="containous-traefik/2.4.8 xenolf-acme/ 4 .3.1 (ปล่อย; ลินุกซ์; amd64)" user-id=
นี่คือ Traefik config.toml
[เอพีไอ]
ไม่ปลอดภัย = จริง
แดชบอร์ด = จริง
แก้จุดบกพร่อง = จริง
[ใบรับรองการแก้ไข]
[certificatesResolvers.myresolver]
[certificatesResolvers.myresolver.acme]
caServer = "https://acme.compagny.int:9000/acme/company.int/directory"
อีเมล = "[email protected]"
ที่เก็บข้อมูล = "/etc/traefik/acme/acme.json"
[certificatesResolvers.myresolver.acme.tlsChallenge]
[ผู้ให้บริการ]
[ผู้ให้บริการ.นักเทียบท่า]
ดู = จริง
เครือข่าย = "traefik_webgateway"
โหมดฝูง = เท็จ
เปิดเผยโดยค่าเริ่มต้น = เท็จ
[providers.file]
ชื่อไฟล์ = "traefik.toml"
ไดเรกทอรี = "/ etc / traefik"
ที่นี่ /home/step/config/ca.json สำหรับบริการ step-ca:
{
"รูท": "/home/step/certs/root_ca.crt",
"federatedRoots": [],
"crt": "/home/step/certs/intermediate_ca.crt",
"คีย์": "/home/step/secrets/intermediate_ca_key",
"ที่อยู่": ":9000",
"ที่อยู่ที่ไม่ปลอดภัย": "",
"ชื่อ DNS": [
"acme.company.int"
]
"ผู้มีอำนาจ": {
"ผู้จัดเตรียม": [
{
"ประเภท": "JWK",
// [...]
},
"เข้ารหัสคีย์": "xxx"
},
{
"ประเภท": "ACME",
"ชื่อ": "company.int",
"forceCN": จริง
"การอ้างสิทธิ์": {
"maxTLSCertDuration": "2160h0m0s",
"defaultTLSCertDuration": "2160h0m0s"
}
},
{
"ประเภท": "ACME",
"ชื่อ": "แอค"
}
]
"แม่แบบ": {},
"วันที่ย้อนหลัง": "1m0s"
},
"tls": {
"cipherSuites": [
"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305",
"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256"
]
"เวอร์ชันขั้นต่ำ": 1.2,
"เวอร์ชันสูงสุด": 1.3,
"การเจรจาใหม่": เท็จ
}
}