Inleiding
Dit document beschrijft de problemen die worden veroorzaakt door het gebruik van certificaten van derden voor de draadloze LAN-controller (WLC).
Voorwaarden
Vereisten
Cisco raadt kennis van de volgende onderwerpen aan:
- Draadloze LAN-controller (WLC)
- Public Key Infrastructure (PKI)
- X.509-certificaten
Gebruikte componenten
De informatie in dit document is gebaseerd op de volgende software- en hardware-versies:
- 3504 WLC met firmware versie 8.10.105.0
- OpenSSL 1.0.2p voor opdrachtregelgereedschap
- Windows 10-machine
- Certificaatketen van private lab Certificate Authority (CA) met drie certificaten (blad, tussenproduct, wortel)
- Trivial File Transfer Protocol (TFTP)-server voor bestandsoverdracht.
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.
Achtergrondinformatie
Op AireOS WLC kunt u certificaten van derden installeren voor WebAuth en WebAdmin. Bij de installatie verwacht de WLC één PEM (Privacy Enhanced Mail) geformatteerd bestand met alle certificaten in de keten helemaal tot het Root CA-certificaat en de privésleutel. De details over deze procedure worden gedocumenteerd in Generate CSR voor de Certificaten van de Derde en Download Geketende Certificaten aan WLC.
Dit document breidt uit en toont meer in detail de meest voorkomende installatiefouten met debug voorbeelden en resolutie voor elk scenario. Debug outputs die door dit document worden gebruikt zijn van debug overdracht allen toelaten en debug pm pki toelaten op WLC. TFTP werd gebruikt om het certificaatbestand over te dragen.
Problemen oplossen
Scenario 1. Wachtwoord dat wordt verstrekt om de privé-sleutel te ontcijferen is onjuist of er is geen wachtwoord opgegeven
*TransferTask: Apr 21 03:51:20.737: Add ID Cert: Adding certificate & private key using password check123
*TransferTask: Apr 21 03:51:20.737: Add Cert to ID Table: Adding certificate (name: bsnSslWebauthCert) to ID table using password check123
*TransferTask: Apr 21 03:51:20.737: Add Cert to ID Table: Decoding PEM-encoded Certificate (verify: YES)
*TransferTask: Apr 21 03:51:20.737: Decode & Verify PEM Cert: Cert/Key Length was 0, so taking string length instead
*TransferTask: Apr 21 03:51:20.737: Decode & Verify PEM Cert: Cert/Key Length 6276 & VERIFY
*TransferTask: Apr 21 03:51:20.741: Decode & Verify PEM Cert: X509 Cert Verification return code: 1
*TransferTask: Apr 21 03:51:20.741: Decode & Verify PEM Cert: X509 Cert Verification result text: ok
*TransferTask: Apr 21 03:51:20.741: Add Cert to ID Table: Decoding PEM-encoded Private Key using password check123
*TransferTask: Apr 21 03:51:20.799: Decode PEM Private Key: Error reading Private Key from PEM-encoded PKCS12 bundle using password check123
*TransferTask: Apr 21 03:51:20.799: Add ID Cert: Error decoding / adding cert to ID cert table (verifyChain: TRUE)
*TransferTask: Apr 21 03:51:20.799: Add WebAuth Cert: Error adding ID cert
*TransferTask: Apr 21 03:51:20.799: RESULT_STRING: Error installing certificate.
Oplossing: Zorg ervoor dat het juiste wachtwoord is voorzien, zodat de WLC het kan decoderen voor installatie.
Scenario 2. Geen tussentijds CA-certificaat in de keten
*TransferTask: Apr 21 04:34:43.319: Add ID Cert: Adding certificate & private key using password Cisco123
*TransferTask: Apr 21 04:34:43.319: Add Cert to ID Table: Adding certificate (name: bsnSslWebauthCert) to ID table using password Cisco123
*TransferTask: Apr 21 04:34:43.319: Add Cert to ID Table: Decoding PEM-encoded Certificate (verify: YES)
*TransferTask: Apr 21 04:34:43.319: Decode & Verify PEM Cert: Cert/Key Length was 0, so taking string length instead
*TransferTask: Apr 21 04:34:43.319: Decode & Verify PEM Cert: Cert/Key Length 4840 & VERIFY
*TransferTask: Apr 21 04:34:43.321: Decode & Verify PEM Cert: X509 Cert Verification return code: 0
*TransferTask: Apr 21 04:34:43.321: Decode & Verify PEM Cert: X509 Cert Verification result text: unable to get local issuer certificate
*TransferTask: Apr 21 04:34:43.321: Decode & Verify PEM Cert: Error in X509 Cert Verification at 0 depth: unable to get local issuer certificate
*TransferTask: Apr 21 04:34:43.321: Add Cert to ID Table: Error decoding (verify: YES) PEM certificate
*TransferTask: Apr 21 04:34:43.321: Add ID Cert: Error decoding / adding cert to ID cert table (verifyChain: TRUE)
*TransferTask: Apr 21 04:34:43.321: Add WebAuth Cert: Error adding ID cert
*TransferTask: Apr 21 04:34:43.321: RESULT_STRING: Error installing certificate.
Oplossing: Valideren van de Emittent en X509v3 Authority Key Identifier velden van het WLC certificaat om het CA certificaat dat het certificaat ondertekende te valideren. Als het tussenliggende CA-certificaat door de CA is verstrekt, kan dat worden gebruikt om te valideren tegen. Anders kunt u het certificaat aanvragen bij uw CA.
Deze OpenSSL-opdracht kan worden gebruikt om deze gegevens op elk certificaat te valideren:
> openssl x509 -in wlc.crt -text -noout
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
50:93:16:83:04:d5:6b:db:26:7c:3a:13:f3:95:32:7e
Signature Algorithm: sha256WithRSAEncryption
Issuer: C=US, O=TAC Lab, CN=Wireless TAC Lab Sub CA
Validity
Not Before: Apr 21 03:08:05 2020 GMT
Not After : Apr 21 03:08:05 2021 GMT
Subject: C=US, O=TAC Lab, CN=guest.wirelesslab.local
...
X509v3 extensions:
X509v3 Authority Key Identifier:
keyid:27:69:2E:C3:2F:20:5B:07:14:80:E1:86:36:7B:E0:92:08:4C:88:12
> openssl x509 -in int-ca.crt -text -noout
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
d1:ec:26:0e:be:f1:aa:65:7b:4a:8f:c7:d5:7f:a4:97
Signature Algorithm: sha256WithRSAEncryption
Issuer: C=US, O=TAC Lab, CN=Wireless TAC Lab Root CA
Validity
Not Before: Apr 21 02:51:03 2020 GMT
Not After : Apr 19 02:51:03 2030 GMT
Subject: C=US, O=TAC Lab, CN=Wireless TAC Lab Sub CA
...
X509v3 Subject Key Identifier:
27:69:2E:C3:2F:20:5B:07:14:80:E1:86:36:7B:E0:92:08:4C:88:12
Als u Windows gebruikt, geeft u het certificaat een .crt-extensie en dubbelklikt u om deze gegevens te valideren.
WLC-certificaat:
Tussentijds CA-certificaat:
Zodra het tussenliggende CA-certificaat is geïdentificeerd, gaat u dienovereenkomstig verder met de keten en installeert u het opnieuw.
Scenario 3. Geen Root CA-certificaat in de keten
*TransferTask: Apr 21 04:28:09.643: Add ID Cert: Adding certificate & private key using password Cisco123
*TransferTask: Apr 21 04:28:09.643: Add Cert to ID Table: Adding certificate (name: bsnSslWebauthCert) to ID table using password Cisco123
*TransferTask: Apr 21 04:28:09.643: Add Cert to ID Table: Decoding PEM-encoded Certificate (verify: YES)
*TransferTask: Apr 21 04:28:09.643: Decode & Verify PEM Cert: Cert/Key Length was 0, so taking string length instead
*TransferTask: Apr 21 04:28:09.643: Decode & Verify PEM Cert: Cert/Key Length 4929 & VERIFY
*TransferTask: Apr 21 04:28:09.645: Decode & Verify PEM Cert: X509 Cert Verification return code: 0
*TransferTask: Apr 21 04:28:09.645: Decode & Verify PEM Cert: X509 Cert Verification result text: unable to get issuer certificate
*TransferTask: Apr 21 04:28:09.645: Decode & Verify PEM Cert: Error in X509 Cert Verification at 1 depth: unable to get issuer certificate
*TransferTask: Apr 21 04:28:09.646: Add Cert to ID Table: Error decoding (verify: YES) PEM certificate
*TransferTask: Apr 21 04:28:09.646: Add ID Cert: Error decoding / adding cert to ID cert table (verifyChain: TRUE)
Oplossing: Dit scenario is vergelijkbaar met scenario 2, maar dit keer met het tussenliggende certificaat wanneer u de emittent (Root CA) valideert. Dezelfde instructies kunnen worden gevolgd met de Emittent en X509v3 Authority Key Identifier fields verificatie op het tussenliggende CA certificaat om de Root CA te valideren.
Deze OpenSSL-opdracht kan worden gebruikt om deze gegevens op elk certificaat te valideren:
> openssl x509 -in int-ca.crt -text -noout
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
d1:ec:26:0e:be:f1:aa:65:7b:4a:8f:c7:d5:7f:a4:97
Signature Algorithm: sha256WithRSAEncryption
Issuer: C=US, O=TAC Lab, CN=Wireless TAC Lab Root CA
Validity
Not Before: Apr 21 02:51:03 2020 GMT
Not After : Apr 19 02:51:03 2030 GMT
Subject: C=US, O=TAC Lab, CN=Wireless TAC Lab Sub CA
...
X509v3 extensions:
X509v3 Authority Key Identifier:
keyid:CB:A6:FF:6C:A7:D4:C3:4B:7C:A3:A9:A3:14:C3:90:8D:9B:04:A0:32
> openssl x509 -in root-ca.crt -text -noout
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
d1:ec:26:0e:be:f1:aa:65:7b:4a:8f:c7:d5:7f:a4:96
Signature Algorithm: sha256WithRSAEncryption
Issuer: C=US, O=TAC Lab, CN=Wireless TAC Lab Root CA
Validity
Not Before: Apr 21 02:40:24 2020 GMT
Not After : Apr 19 02:40:24 2030 GMT
Subject: C=US, O=TAC Lab, CN=Wireless TAC Lab Root CA
...
X509v3 Subject Key Identifier:
CB:A6:FF:6C:A7:D4:C3:4B:7C:A3:A9:A3:14:C3:90:8D:9B:04:A0:32
Tussentijds CA-certificaat
CA-basiscertificaat:
Zodra het Root CA-certificaat is geïdentificeerd (zowel Uitgever als Onderwerp zijn hetzelfde), gaat u dienovereenkomstig verder met de keten en installeert u het opnieuw.
Opmerking: Dit document maakt gebruik van drie certificaatketens (blad, tussenliggende CA, Root CA), wat het meest gebruikelijke scenario is. Er kunnen scenario's zijn wanneer 2 Tussentijdse CA-certificaten betrokken zijn. De zelfde richtlijn van dit scenario kan worden gebruikt tot het certificaat van de Wortel CA wordt gevonden.
Scenario 4. Geen CA-certificaten in de keten
*TransferTask: Apr 21 04:56:50.272: Add ID Cert: Adding certificate & private key using password Cisco123
*TransferTask: Apr 21 04:56:50.272: Add Cert to ID Table: Adding certificate (name: bsnSslWebauthCert) to ID table using password Cisco123
*TransferTask: Apr 21 04:56:50.272: Add Cert to ID Table: Decoding PEM-encoded Certificate (verify: YES)
*TransferTask: Apr 21 04:56:50.272: Decode & Verify PEM Cert: Cert/Key Length was 0, so taking string length instead
*TransferTask: Apr 21 04:56:50.272: Decode & Verify PEM Cert: Cert/Key Length 3493 & VERIFY
*TransferTask: Apr 21 04:56:50.273: Decode & Verify PEM Cert: X509 Cert Verification return code: 0
*TransferTask: Apr 21 04:56:50.273: Decode & Verify PEM Cert: Error in X509 Cert Verification at 0 depth: unable to get local issuer certificate
*TransferTask: Apr 21 04:56:50.274: Add Cert to ID Table: Error decoding (verify: YES) PEM certificate
*TransferTask: Apr 21 04:56:50.274: Add WebAuth Cert: Error adding ID cert
*TransferTask: Apr 21 04:56:50.274: RESULT_STRING: Error installing certificate.
Oplossing: Met geen ander certificaat in het bestand dan het WLC-certificaat, mislukt validatie bij verificatie op 0 diepte. Het bestand kan worden geopend in een te valideren tekstverwerker. De richtlijnen van scenario 2 en 3 kunnen worden gevolgd om de keten helemaal tot Root CA te identificeren en dienovereenkomstig opnieuw te ketenen en opnieuw te installeren.
Scenario 5. Geen privé-sleutel
*TransferTask: Apr 21 05:02:34.764: Add WebAuth Cert: Adding certificate & private key using password
*TransferTask: Apr 21 05:02:34.764: Add ID Cert: Adding certificate & private key using password
*TransferTask: Apr 21 05:02:34.764: Add Cert to ID Table: Adding certificate (name: bsnSslWebauthCert) to ID table using password
*TransferTask: Apr 21 05:02:34.764: Add Cert to ID Table: Decoding PEM-encoded Certificate (verify: YES)
*TransferTask: Apr 21 05:02:34.764: Decode & Verify PEM Cert: Cert/Key Length was 0, so taking string length instead
*TransferTask: Apr 21 05:02:34.764: Decode & Verify PEM Cert: Cert/Key Length 3918 & VERIFY
*TransferTask: Apr 21 05:02:34.767: Decode & Verify PEM Cert: X509 Cert Verification return code: 1
*TransferTask: Apr 21 05:02:34.767: Decode & Verify PEM Cert: X509 Cert Verification result text: ok
*TransferTask: Apr 21 05:02:34.768: Add Cert to ID Table: Decoding PEM-encoded Private Key using password
*TransferTask: Apr 21 05:02:34.768: Retrieve CSR Key: can't open private key file for ssl cert.
*TransferTask: Apr 21 05:02:34.768: Add Cert to ID Table: No Private Key
*TransferTask: Apr 21 05:02:34.768: Add ID Cert: Error decoding / adding cert to ID cert table (verifyChain: TRUE)
*TransferTask: Apr 21 05:02:34.768: Add WebAuth Cert: Error adding ID cert
*TransferTask: Apr 21 05:02:34.768: RESULT_STRING: Error installing certificate.
Oplossing: De WLC verwacht dat de privésleutel wordt opgenomen in het bestand als certificaatondertekeningsverzoek (CSR) extern is gegenereerd en in het bestand moet worden geketend. In het geval dat de CSR werd gegenereerd in de WLC, zorg ervoor dat de WLC niet wordt herladen voor de installatie, anders raakt de private sleutel verloren.
Gerelateerde informatie