ไม่สามารถเพิ่มผู้ฟัง SSL ไม่พบใบรับรองเซิร์ฟเวอร์สำหรับคีย์


19

ฉันกำลังพยายามตั้งค่า SSL บนเครื่องโหลดบาลานซ์ด้วยใบรับรองที่ฉันซื้อจาก GoDaddy

เมื่อพยายามอัพโหลดใบรับรองในคอนโซลฉันพบข้อผิดพลาด

ไม่สามารถสร้าง load balancer: ไม่พบใบรับรองเซิร์ฟเวอร์สำหรับคีย์: arn: aws: iam :: ************: server-certificate / mycert

ฉันไม่เคยพบข้อผิดพลาดนี้มาก่อนเมื่อเพิ่มใบรับรอง SSL ฉันไม่แน่ใจว่าทำไมiamถึงใช้ที่นี่

หลังจาก Googling ฉันสามารถอัปโหลดใบรับรองของฉันไปiamใช้ aws cli (อีกครั้งไม่แน่ใจว่าทำไมฉันต้องทำเช่นนี้)

ตอนนี้เมื่อปรับเปลี่ยนผู้ฟังฉันสามารถดูใบรับรองที่อัปโหลดของฉันเป็นใบรับรอง SSL ที่มีอยู่ เมื่อฉันพยายามบันทึกการเปลี่ยนแปลงของฉันลงใน load balancer อย่างไรก็ตามฉันได้รับข้อผิดพลาดเดียวกัน ฉันได้ตรวจสอบแล้วว่ามีใบรับรองอยู่:

$ aws iam list-server-certificates
{
    "ServerCertificateMetadataList": [
        {
            "ServerCertificateId": "*********************", 
            "ServerCertificateName": "mycert", 
            "Expiration": "2018-11-19T18:47:38Z", 
            "Path": "/", 
            "Arn": "arn:aws:iam::************:server-certificate/mycert", 
            "UploadDate": "2015-11-19T19:23:32Z"
        }
    ]
}

(ฉันได้ตรวจสอบหมายเลขบัญชีที่ยุ่งเหยิงที่นี่เหมือนกับในข้อผิดพลาด)

จากที่นี่ฉันติดอยู่ เหตุใดฉันจึงไม่สามารถใช้ใบรับรองกับตัวโหลดบาลานซ์นี้ได้


แก้ไขพฤ 19 พ.ย. 11:47:18 น. 2558

หลังจากรอสักครู่แล้วออกจากระบบและเข้าสู่ระบบฉันสามารถอัปเดตผู้ฟังด้วยใบรับรอง SSL ของฉัน อย่างไรก็ตามดูเหมือนว่าจะทำงานไม่ถูกต้อง เมื่อพยายามที่จะโหลดโดเมนของฉันมากกว่าHTTPSคำขอหมดเวลา ดูเหมือนว่าไม่สามารถโหลดใบรับรองได้

$ echo | openssl s_client -connect www.example.com:443 2>/dev/null | openssl x509 -noout -subject
unable to load certificate
69457:error:0906D06C:PEM routines:PEM_read_bio:no start line:/SourceCache/OpenSSL098/OpenSSL098-52.30.1/src/crypto/pem/pem_lib.c:648:Expecting: TRUSTED CERTIFICATE

1
Certs จะถูกเก็บไว้เสมอใน IAM ดังนั้นดูเหมือนว่าคุณจะได้รับความล่าช้าในการจำลองแบบ IAM หรือข้อผิดพลาดอื่น ๆ ที่ใบรับรองดูเหมือนว่าจะถูกเก็บไว้โอเค แต่แล้วก็ไม่ได้อยู่ที่นั่น ... สิ่งที่คุณควรทำ กลุ่มรักษาความปลอดภัย ELB เปิดสู่โลกสำหรับ HTTPS หรือไม่? ถ้าเป็นเช่นนั้นคุณมีความผิดปกติที่สองที่นี่และฉันขอแนะนำให้สร้าง ELB ใหม่ตั้งแต่เริ่มต้นและดูว่ามันทำงานผิดปกติหรือไม่
Michael - sqlbot

คำตอบ:


30

ฉันประสบปัญหาเดียวกันเมื่อพยายามสร้าง ELB จากเว็บคอนโซล ฉันพยายามสร้างการอัปโหลดใบรับรองใหม่ที่นั่นผ่านทาง GUI และในที่สุดมันก็ล้มเหลวด้วยข้อผิดพลาดเดียวกัน ฉันแก้ไขมันโดยการอัพโหลดไฟล์ใบรับรองแยกต่างหากผ่านทาง aws cli มีการอธิบายในเอกสารนี้ - http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/ssl-server-cert.html#upload-cert

อัปโหลดใบรับรองคีย์ส่วนตัวและห่วงโซ่ใบรับรองเช่นนี้

aws iam upload-server-certificate --server-certificate-name my-server-cert \
  --certificate-body file://my-certificate.pem --private-key file://my-private-key.pem \
  --certificate-chain file://my-certificate-chain.pem

จากนั้นไปที่เว็บคอนโซลและเลือกตัวเลือก "เลือกใบรับรองที่มีอยู่จาก AWS Identity and Access Management (IAM)" และเลือกคู่ใบรับรองที่เพิ่งอัปโหลด มันจะทำงานได้ดีหลังจากนั้น


1
ผมมีปัญหาเดียวกัน. แก้ไขวิธีที่คุณอธิบายโดยใช้ไคลเอ็นต์ aws ตามลิงก์ที่คุณแชร์ การใช้เว็บฟอร์มของ IAM Console เพื่อวางในคีย์ crt และ chain ไม่ได้ผลสำหรับฉัน ฉันติดตั้ง aws-client บนเครื่อง dev ของฉันตั้งค่าด้วย "การกำหนดค่า aws" เพื่อเพิ่มข้อมูลประจำตัวแล้วเรียกใช้คำสั่ง aws iam uplad-server-certificate ...
wojjas

GUI ให้ปัญหากับฉัน CLI ไม่ได้ ... ตามปกติ
Spechal

1
สำหรับการอัปเดต (เป็นตอนนี้ 2017) ฉันเพิ่งพูดกับฝ่ายสนับสนุนของ Amazon และนี่เป็นปัญหาที่ทราบแล้ว CLI เป็นวิธีเดียวที่จะทำให้แน่ใจว่ากระบวนการนี้จะทำงานอย่างถูกต้อง -_-
Nicholas Kreidberg

2
กลางปี ​​2560 และปัญหายังคงมีอยู่
Diogo Melo

2
สิ้นเดือนมกราคม 2018 - ยังและปัญหา
Andrew S

17

ข้อผิดพลาดทำให้เข้าใจผิด มันจะอัปโหลดใบรับรอง เมื่อคุณได้รับข้อผิดพลาดออกจากนั้นกลับไปที่การเปลี่ยนแปลง เลือกใบรับรอง IAM ที่มีอยู่และคลิกที่ดรอปดาวน์ - คุณควรเห็นใบรับรองใหม่ที่นั่น


นี่คือสิ่งที่เกิดขึ้นกับฉันเช่นกัน ฉันได้รับข้อผิดพลาดสันนิษฐานว่าหมายความว่าใบรับรองไม่ได้อัปโหลดดังนั้นฉันลองอีกครั้ง ... และมีข้อผิดพลาดที่แตกต่างกันโดยระบุว่าใบรับรองนั้นมีอยู่แล้ว การออกจาก UI "ใบรับรองใหม่" และย้อนกลับและเลือกใบรับรองที่ฉันเพิ่งอัปโหลดเนื่องจากใบรับรอง "ที่มีอยู่" นั้นใช้งานได้ดี
coredumperror

1
ขอขอบคุณ! นี่มันรกมาก ฉันไม่อยากจะเชื่อเลยว่าพวกเขาไม่ได้แก้ไขอะไรแบบนี้
เผยแพร่

ที่ถูกต้อง
shareef

สิ่งนี้ยังคงเกิดขึ้นในเวิร์กโฟลว์การอัปโหลดใบรับรองของ ELB IAM แต่พวกเขาแก้ไขในเวิร์กโฟลว์การอัปโหลดใบรับรอง ALB IAM
Josip Rodin

5

ฉันมีปัญหาเดียวกัน แต่ก็สามารถแก้ไขได้โดยไม่ต้องกด CLI ฉันได้รับ ELB เพื่อเพิ่มผู้ฟัง HTTPS โดยวางห่วงโซ่ใบรับรองในฟิลด์ใบรับรองกุญแจสาธารณะหลังจากใบรับรองเอง

ข้อผิดพลาดจะปรากฏขึ้นเมื่อสายโซ่ใบรับรองถูกวางในกล่องอินพุตของห่วงโซ่ใบรับรองของตัวเองในคอนโซล (ทำเครื่องหมายหรือไม่ก็ได้) ไม่แน่ใจว่าทำไมสิ่งนี้ถึงสร้างความแตกต่างได้ แต่มันสร้างผู้ฟัง HTTPS บน ELB และทุกอย่างก็ดี


สิ่งนี้ใช้ได้กับฉันตอนนี้ด้วยใบรับรอง Comodo DV ที่ซื้อผ่าน SSLmate ปัญหาแยกต่างหากคือฉันได้รับข้อผิดพลาดทันทีหลังจากคลิกปุ่ม 'ส่ง' สุดท้ายซึ่งได้รับการแก้ไขโดยการคลิกปุ่มอีกครั้งหลังจากผ่านไปสองสามวินาที (การเผยแพร่ IAM ล่าช้าเนื่องจากความสอดคล้องในท้ายที่สุด)
RichVel

3

มันเป็นเพราะตัวละครพิเศษในชื่อใบรับรอง:. (จุด) ในกรณีของฉัน ทุกอย่างทำงานได้ดีหลังจากลบจุดทั้งหมดออกจากชื่อใบรับรอง


1
และลบ "-" ขีดกลาง
ysrb

2

ฉันแค่กดปุ่มนี้เช่นกัน พยายามห้าครั้งเพื่อสร้าง ELB ใหม่และล้มเหลวทุกครั้ง ไม่เคยลองใช้ตัวแปร API แต่ฉันจัดการเพื่อตั้งค่าใบรับรอง SSL โดย

  1. ก่อนสร้าง ELB; แล้วก็
  2. แก้ไขผู้ฟังโดยเปลี่ยนจาก HTTP เป็น HTTPS และอัปโหลดใบรับรอง + แป้น + ตัวกลางของฉัน

1

ฉันประสบปัญหาเดียวกัน ในกรณีของฉันฉันได้รับข้อผิดพลาด "ไม่พบใบรับรองเซิร์ฟเวอร์สำหรับคีย์" เมื่ออัปโหลดใบรับรอง SSL แต่ในที่สุดพวกเขาจะอัปโหลดและแสดงในรายการแบบหล่นลง ฉันไม่ได้รับข้อผิดพลาดใด ๆ เมื่อทำการอัพโหลดผ่าน CLI เมื่อฉันติดต่อฝ่ายสนับสนุน AWS พวกเขาให้เหตุผลด้านล่างกับฉันเพื่อข้อผิดพลาด

สาเหตุของเหตุการณ์นี้คือความสอดคล้องในที่สุด ใบรับรองที่อัพโหลดจะถูกเก็บไว้ใน IAM เนื่องจาก IAM มีฐานข้อมูลขนาดใหญ่ใบรับรองที่อัปโหลดจึงต้องเผยแพร่ผ่านฐานข้อมูลทั้งหมด หากมีเวลาไม่เพียงพอที่จะเผยแพร่ ELB ที่พยายามดึงใบรับรองนี้จะไม่สามารถค้นหาได้ในปลายทางที่กำลังสอบถาม ดังนั้นจะพ่น "ไม่พบใบรับรองเซิร์ฟเวอร์สำหรับคีย์" เมื่อในที่สุดได้รับการเผยแพร่ในภายหลังจะสามารถเห็นว่าเป็นใบรับรองที่อัปโหลดแล้ว


1

ฉันได้รับสิ่งนี้โดยไปที่ตัวจัดการใบรับรองในคอนโซล aws และอัปโหลดที่นั่นก่อน จากนั้นใช้ตัวช่วยสร้างโหลดบาลานซ์และเลือกใบรับรองที่ฉันอัปโหลด


ล่วงเวลาฉันอัปโหลด SSL ไปยัง AWS ฉันพบปัญหาอื่น ในครั้งนี้การตั้งค่าในตัวจัดการใบรับรองแล้วเพียงแค่ใช้มันใน EC2 Load Balancer ใช้งานได้ !!
user566245

0

ปัญหาเดียวกันที่นี่เมื่อใช้เว็บอินเตอร์เฟส AWS: ฉันอัปโหลดใบรับรองที่ถูกต้องกุญแจที่ถูกต้องและสายโซ่สมบูรณ์ แต่มีข้อผิดพลาดดังกล่าวข้างต้น

ฉันพยายามอัพโหลดใบรับรองไปยังอีกเครื่องหนึ่ง (ทดสอบ) - โหลดบาลานเซอร์ การอัปโหลดใช้งานได้ แต่สถานะผู้ฟังแจ้งว่า: "Invalid-Certificate"

เมื่อฉันเปิดกล่องโต้ตอบ "เลือกใบรับรอง" อีกครั้งไม่มีการเลือกใบรับรอง แต่เห็นได้ชัดว่ามีการอัปโหลดใบรับรองอย่างถูกต้องเพราะฉันสามารถเลือกได้ในรายการใบรับรอง

ดังนั้นกลับไปที่ load balancer ดั้งเดิมของฉันฉันพยายามกำหนดใบรับรองที่อัปโหลดนี้ตอนนี้สิ่งแปลก ๆ : มันไม่ได้อยู่ในรายการ ฉันลองใหม่และอัปโหลดใบรับรองและรหัสของมัน แต่ไม่ได้อยู่ในห่วงโซ่ใบรับรอง วิธีนี้ใช้ได้ผลดังนั้นฉันจึงรู้ว่าต้องเป็นห่วงโซ่ที่ไม่ถูกต้อง (เป็นใบรับรองสำหรับสินค้าโภคภัณฑ์) ฉันดาวน์โหลดเชนอีกครั้งจากหน้าอย่างเป็นทางการอัพโหลดกลุ่มทั้งหมดและใช้งานได้ สิ่งที่แปลกตอนนี้: เมื่อฉันเปรียบเทียบทั้งคู่ - สิ่งที่เสียหายและดาวน์โหลดใหม่พวกเขาดูเหมือนกัน วันที่เดียวกัน, อนุกรมเดียวกัน, เหมือนกัน แต่ต่างกัน

สั้นเรื่องสั้น: ทำงานโดยดาวน์โหลดใบรับรองระดับกลางอีกครั้ง


0

ฉันมีปัญหาเดียวกันนี้และสิ่งที่แก้ไขได้ในที่สุดก็จะเข้าสู่กลุ่มรักษาความปลอดภัยสำหรับโหลดบาลานเซอร์และทำให้แน่ใจว่าพอร์ต 443 เปิดขึ้น


0

ก่อนที่จะสร้าง load balancer แบบคลาสสิกคุณต้องสร้าง AMI (รูปภาพของอินสแตนซ์ของคุณในการผลิต) ด้วยการไปที่การตั้งค่าการสร้าง load balancer และทำกระบวนการอีกครั้งและหลังจากนี้ใบรับรองที่ให้ไว้



0

ฉันมีปัญหาเดียวกันหากฉันอัปโหลดใบรับรองโดยตรง

ถ้าฉันใช้ตัวจัดการใบรับรอง (AWS ตัวจัดการใบรับรอง - ACM) ฉันสามารถอัปโหลดใบรับรองได้ หลังจากนั้นฉันสามารถเลือกใบรับรองในรายการแบบหล่นลง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.