Inleiding
Dit document beschrijft het algemene proces voor het genereren, downloaden en installeren van certificaten op de Catalyst 9800
Voorwaarden
Vereisten
Cisco raadt kennis van de volgende onderwerpen aan:
- Hoe de 9800 WLC, het access point (AP) te configureren voor basisbediening
- De OpenSSL-toepassing gebruiken
- Public Key Infrastructure (PKI) en digitale certificaten
Gebruikte componenten
De informatie in dit document is gebaseerd op de volgende software- en hardware-versies:
- Catalyst 9800-CL, Cisco IOS® XE versie 17.9.4
- OpenSSL-toepassing (versie 3.1.3)
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.
Configureren
Op 16.10.X, 9800s niet ondersteunen een ander certificaat voor webverificatie en webbeheer. Het webloginportal gebruikt altijd het standaardcertificaat.
Op 16.11.X, kunt u een specifiek certificaat voor webverificatie configureren, het trustpoint definiëren binnen de globale parameter-map.
Er zijn twee opties om een certificaat te krijgen voor een 9800 WLC.
- Genereren Certificaat-Ondertekeningsaanvraag (CSR) met OpenSSL of een andere SSL-toepassing. Genereert (met OpenSSL) of krijgt een PKCS12-certificaat dat is ondertekend door uw certificaatinstantie (CA) en laadt dit rechtstreeks naar de 9800 WLC. Dit betekent dat de privésleutel is gebundeld met dat certificaat.
- Gebruik de 9800 WLC om een CSR, krijg het ondertekend door een CA en laad vervolgens elk certificaat in de keten handmatig naar de 9800 WLC.
Gebruik degene die het beste bij uw behoeften past.
Optie 1 - Laad een pre-bestaand PKCS12 Ondertekend certificaat op de WLC
Stap 1: Maak een aanvraag voor het ondertekenen van een certificaat
Als u het certificaat nog niet hebt, moet u een certificaat ondertekeningsverzoek (CSR) genereren om bij uw CA in te dienen.
Maak een tekstbestand met de naam "openssl.conf" vanuit uw huidige map (op een laptop waarop OpenSSL is geïnstalleerd), kopieer en plak deze regels om het veld Onderwerp Alternatieve Namen (SAN) op te nemen in nieuwe CSR’s.
[ req ]
default_bits = 4096
distinguished_name = req_distinguished_name
req_extensions = req_ext
prompt = no
[ req_distinguished_name ]
countryName = <Country Name (2 letter code)>
stateOrProvinceName = <State or Province Name (full name)>
localityName = <Locality Name (eg, city)>
organizationName = <Organization Name (eg, company)>
commonName = <Common Name (e.g. server FQDN or YOUR name)>
[ req_ext ]
subjectAltName = @alt_names
[alt_names]
DNS.1 = testdomain.com
DNS.2 = example.com
DNS.3 = webadmin.com
IP.1 = <WLC_IP_ADDRESS> (note : this is optionnal, but can be added in case you want to access your WLC using the IP address instead of FQDN)
Vervang de DNS.X-namen door uw SAN (alternatieve onderwerpnaam). Vervang de belangrijkste velden met de gewenste certificaatdetails. Zorg ervoor dat u de algemene naam in de SAN-velden (DNS.x) herhaalt. Google Chrome vereist dat de naam in de URL in de SAN-velden staat om het certificaat te kunnen vertrouwen.
In het geval van web admin moet u ook SAN-velden invullen met variaties van de URL (bijvoorbeeld alleen hostnaam of volledige Fully Qualified Domain Name (FQDN)) zodat het certificaat aansluit op wat de admin typt in de URL in de adresbalk van de browser.
Genereert de CSR via OpenSSL met deze opdracht:
openssl req -out myCSR.csr -newkey rsa:4096 -nodes -keyout private.key -config openssl.conf
De CSR genereert als myCSR.csr en zijn sleutel als private.key in de directory waar OpenSSL wordt uitgevoerd, tenzij het volledige pad naar de opdracht is voorzien.
Waarschuwing: Zorg ervoor dat het bestand private.key veilig is, aangezien het wordt gebruikt om communicatie te versleutelen
Stap 2: Controleer de inhoud van uw MVO
U kunt de inhoud van uw MVO kopiëren naar een online tool (type "MVO decoder" op Google bijvoorbeeld) om de inhoud te controleren. Zorg ervoor dat de SAN (Onderwerp Alternatieve Naam) is opgenomen in de CSR zoals vereist door sommige browser.
U kunt de inhoud van de MVO met OpenSSL ook verifiëren met behulp van deze opdracht:
openssl req -noout -text -in myCSR.csr
Stap 3: Verzend de MVO naar uw CA
U kunt dit MVO dan aan uw CA verstrekken om het ondertekend te hebben en een certificaat terug te ontvangen. Zorg ervoor dat de volledige keten van CA wordt gedownload en dat het certificaat in Base64-formaat is voor het geval het verdere manipulatie nodig heeft. U ontvangt doorgaans meerdere bestanden van uw CA: het ondertekende apparaatcertificaat, het Root CA-certificaat en een of meer tussenliggende CA-certificaten.
Stap 4: Maak en/of importeer het bestand pkcs12 op de WLC
Als u de CSR op uw computer hebt gegenereerd met OpenSSL, is er een kans dat uw CA u alleen het ondertekende certificaat biedt, samen met het eigen certificaat en de uiteindelijke tussenliggende certificaten. In dat geval moet u het PKCS12-bestand zelf genereren met OpenSSL. Als de CA ook toegang had tot uw privé-sleutel, kan het u direct het PKCS12-bestand (PFX-bestand) bieden en in dat geval zou u het eenvoudigweg op de controller moeten importeren. Raadpleeg het gedeelte "Het PKCS12-bestand importeren" om dit te doen.
Het PKCS12-bestand maken
Het is mogelijk om in een situatie te eindigen waar u een privaat sleutelbestand en certificaat in PEM of CRT formaat hebt en hen in een formaat willen combineren PKCS12 (.pfx) om aan de 9800 WLC te uploaden. U kunt ook een of meerdere CA-certificaten hebben die ook in dit pfx-bestand moeten worden opgenomen voordat u in de 9800 WLC importeert.
Het eerste wat je zou moeten doen is alle tussenliggende CA's en het Root CA-bestand te combineren tot één bestand. Kopieer en plak de inhoud samen (sla het bestand op in .pem-indeling) :
----- BEGIN Certificate --------
<intermediate CA cert>
------END Certificate --------
-----BEGIN Certificate -----
<root CA cert>
-----END Certificate--------
Vervolgens kunt u uw .pfx-bestand maken met deze opdracht :
For versions older than 17.12.1 :
openssl pkcs12 -export -macalg sha1 -legacy -descert -out chaincert.pfx -inkey -in -certfile
For version 17.12.1 or above :
openssl pkcs12 -export -out chaincert.pfx -inkey -in -certfile
Tip: u kunt bij het configureren van een wachtwoord voor het .pfx-bestand de ASCII-tekens *, ^, (), [], " en + niet gebruiken. Het gebruik van deze ASCII-tekens resulteert in fouten met een slechte configuratie en importeert het certificaat niet naar de controller.
Opmerking: de vlag "-macalg sha1" is nodig op versies ouder dan 17.12.1 vanwege Cisco bug-id CSC41428. De "-legacy -descert" is ook nodig omdat OpenSSL versie 3 meestal het gebruik van legacy-algoritmen standaard beperkt. De nieuwere algoritmen worden echter ondersteund in versie 17.12.1 en hoger, dus deze vlaggen zijn niet nodig als u het pfx-bestand op dergelijke versies wilt importeren.
Controleer of het PKCS12-bestand is gemaakt
U kunt de inhoud van het PKCS12-bestand controleren met deze opdracht :
openssl pkcs12 -info -in
Je ziet in deze output de volledige certificaatketen en de privé-sleutel. Dit bestand is beveiligd met het wachtwoord dat u eerder hebt ingesteld.
Het PKCS12-bestand importeren
U kunt nu het .pfx-bestand op de 9800 WLC importeren met behulp van de GUI of de CLI.
Gebruik van de GUI :
Open uw 9800 WLC GUI en navigeer naar Configuration > Security > PKI Management, klik op het tabblad Certificaat toevoegen. Breid het menu Certificaat PKCS12 importeren uit. Als het .pfx-bestand op uw computer is opgeslagen, kiest u de optie Desktop (HTTPS) in de vervolgkeuzelijst Type transport, waarmee HTTP kan worden geüpload via de browser. Het Wachtwoord voor certificaten verwijst naar het wachtwoord dat werd gebruikt toen het PKCS12-certificaat werd gegenereerd.
Controleer of de informatie juist is en klik op Importeren. Daarna ziet u het nieuwe certificaat sleutelpaar voor dit nieuwe trustpoint geïnstalleerd in het tabblad Key Pair Generation. Bij een succesvolle import creëert de 9800 WLC ook een extra vertrouwenspunt voor meerlaagse CA’s.
Waarschuwing: de volgende fout wordt gezien wanneer specifieke ASCII-tekens zijn opgenomen in het wachtwoord van het .pfx bestand: Fout in het configureren van leesbestand van bootflash pfx CRYPTO PKI Import PKCS12 operatie is mislukt slecht HMAC Mogelijke oorzaken slecht wachtwoord of beschadigd PKCS12 Inclusief de volgende tekens in het wachtwoord veroorzaakt de fout: *, ^, (), [], \ Wanneer de tekens (" en +) worden opgenomen verschijnt de volgende fout: "Fout in configuratie". Het certificaat wordt niet geïmporteerd in de WLC.
Opmerking: De 9800 WLC presenteert momenteel niet de volledige certificaatketen wanneer een specifiek trustpoint wordt gebruikt voor webauth of webadmin, maar presenteert het apparaatcertificaat en de directe emittent ervan. Dit wordt gevolgd met Cisco bug-id CSC23606, vastgelegd in Cisco IOS® XE 17.8.
De CLI gebruiken:
9800# configure terminal
9800(config)#crypto pki import
pkcs12 [tftp://
/
| ftp://
/
|
http://
/
| bootflash:
] password
Opmerking: het is belangrijk dat zowel de certificaatbestandsnaam als de trustpoint naam exact overeenkomen voor de 9800 WLC om extra trustpoints te maken voor meerdere CA’s.
Optie 2 - Bepaal een sleutel en Certificaat Ondertekeningsverzoek (CSR) op de 9800 WLC
Stap 1: Genereer een algemeen RSA-sleutelpaar
Navigeer naar Configuratie > Beveiliging > PKI-beheer, kies het tabblad Key Pair Generation en klik vervolgens op + Add. Voer de gegevens in, zorg ervoor dat het aanvinkvakje Key Exporteerbaar is ingeschakeld en klik vervolgens op Generate.
CLI-configuratie:
9800(config)#crypto key generate rsa general-keys label 9800-keys exportable
The name for the keys will be: 9800-keys
Choose the size of the key modulus in the range of 512 to 4096 for your
General Purpose Keys. Choosing a key modulus greater than 512 may take
a few minutes.
How many bits in the modulus [1024]: 4096
% Generating 4096 bit RSA keys, keys will be exportable...
[OK] (elapsed time was 9 seconds)
Stap 2: Genereer een CSR op uw 9800 WLC
Navigeer naar het tabblad Certificaat toevoegen en vouw Generate Certificate Signing Aanvraag uit, vul de details in en kies het eerder gemaakte sleutelpaar uit de vervolgkeuzelijst. Het is belangrijk dat Domeinnaam overeenkomt met de URL die is gedefinieerd voor clienttoegang op de 9800 WLC (web admin pagina, web authenticatie pagina, enzovoort), Certificaatnaam is de trustpoint naam zodat u kunt benoemen op basis van het gebruik ervan.
Opmerking: De 9800 WLC's ondersteunen certificaten met wildcard parameters binnen hun algemene naam.
Zorg ervoor dat de informatie correct is en klik vervolgens op Generate. Dit geeft de MVO weer in een tekstvak naast het originele formulier
Kopiëren slaat een kopie naar het klembord op, zodat u deze in een teksteditor kunt plakken en de CSR kunt opslaan.
Op apparaat opslaan maakt een kopie van de SR en slaat deze op in bootflash:/csr. Om het te zien, voer deze opdrachten uit:
9800#dir bootflash:/csr
Directory of bootflash:/csr/
1046531 -rw- 1844 Sep 28 2021 18:33:49 +00:00 9800-CSR1632856570.csr
26458804224 bytes total (21492699136 bytes free)
9800#more bootflash:/csr/9800-CSR1632856570.csr
-----BEGIN CERTIFICATE REQUEST-----
<Certificate Request>
-----END CERTIFICATE REQUEST-----
CLI-configuratie:
9800(config)#crypto pki trustpoint 9800-CSR
9800(ca-trustpoint)#enrollment terminal pem
9800(ca-trustpoint)#revocation-check none
9800(ca-trustpoint)#subject-name C=BE, ST=Brussels, L=Brussels, O=Cisco Systems, OU=Wireless TAC, CN=mywlc.local-domain
9800(ca-trustpoint)#rsakeypair 9800-keys
9800(ca-trustpoint)#subject-alt-name example.com,guestportal.com,webadmin.com
9800(ca-trustpoint)#exit
(config)#crypto pki enroll 9800-CSR
% Start certificate enrollment ..
% The subject name in the certificate will include: C=BE, ST=Brussels, L=Brussels, O=Cisco Systems, OU=Wireless TAC, CN=mywlc.local-domain
% The subject name in the certificate will include: mywlc
% Include the router serial number in the subject name? [yes/no]: no
% Include an IP address in the subject name? [no]: no
Display Certificate Request to terminal? [yes/no]: yes
Certificate Request follows:
-----BEGIN CERTIFICATE REQUEST-----
<Certificate Request>
-----END CERTIFICATE REQUEST-----
---End - This line not part of the certificate request---
Redisplay enrollment request? [yes/no]: no
Beschikbare parameters voor configuratie van onderwerpnaam:
C: Land, het moet slechts twee hoofdletters zijn.
ST: Sommige staat, verwijst naar staat of provincienaam.
L: Location Name, verwijst naar de stad.
O: Organisatienaam, verwijst naar bedrijf.
OU: Organisatorische Eenheid Naam, kan verwijzen naar sectie.
CN: (algemene naam)Verwijst naar het onderwerp waarop het certificaat is afgegeven, u moet ofwel het specifieke IP-adres opgeven dat moet worden geopend (draadloos IP-beheer, virtueel IP, enzovoort) of de geconfigureerde hostnaam met FQDN.
Opmerking: als u een alternatieve onderwerpnaam wilt toevoegen, is het niet mogelijk op Cisco IOS XE-versies vóór 17.8.1 vanwege Cisco bug-id CSCvt15177 . Dit scenario kan resulteren in sommige browser waarschuwingen als gevolg van SAN niet aanwezig, om te voorkomen dat dit dan maken van de sleutel en CSR off-box zoals getoond in Optie 1.
Stap 3: Verzend uw CSR naar uw CA (Certification Authority)
De volledige string moet naar de CA gestuurd worden om het getekend te krijgen.
-----BEGIN CERTIFICATE REQUEST-----
<Certificate Request>
-----END CERTIFICATE REQUEST-----
Als u een Windows Server CA gebruikt om het certificaat te ondertekenen, downloadt u het ondertekende certificaat in Base64-indeling. Anders moet u exporteren met hulpprogramma's zoals Windows cert Manager.
U ontvangt doorgaans van uw CA het ondertekende apparaatcertificaat, de tussenliggende CA(s) (indien van toepassing) certificaten en het Root CA-certificaat.
Stap 4: Verifieer de CA(s) naar de 9800 WLC
Als uw certificaat direct door de wortel CA wordt ondertekend, kunt u de instructies van Step4a controleren (alles kan worden gedaan met behulp van de GUI).
Als uw certificaat is ondertekend door een CA op meerdere niveaus, ga dan naar de instructies in Stap4b (in dit geval is CLI vereist).
Stap 4a: Verifieer de root-CA
Maak 9800 vertrouwen de emittent CA. Download of krijg het CA certificaat van de uitgever in .pem formaat (Base64). Breid de CA-sectie van de verificatieroot binnen hetzelfde menu uit, kies het eerder gedefinieerde trustpoint uit de vervolgkeuzelijst van Trustpoint en plak het CA-certificaat van de emittent. Zorg ervoor dat de gegevens correct zijn geconfigureerd en klik op Verifiëren.
CLI-configuratie:
9800(config)# crypto pki authenticate 9800-CSR
Enter the base 64 encoded CA certificate.
End with a blank line or the word "quit" on a line by itself
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
Certificate has the following attributes:
Fingerprint MD5: DD05391A 05B62573 A38C18DD CDA2337C
Fingerprint SHA1: 596DD2DC 4BF26768 CFB14546 BC992C3F F1408809
% Do you accept this certificate? [yes/no]: yes
Trustpoint CA certificate accepted.
% Certificate successfully imported
Stap 4b : Verifiëren van meerlaagse CA
In het scenario waarin meerdere machtigingsniveaus bestaan, is een nieuw trustpoint nodig voor elk extra CA-niveau. Als uw certificaat direct door de Root CA is ondertekend, raadpleeg dan Stap4a als slechts één vertrouwenspunt (het punt dat wordt gemaakt bij het genereren van de CSR) is vereist.
In het geval u een tussenliggende CA en een Root CA hebt, hebt u 2 trustpoints nodig: de reeds aangemaakt (die het apparaatcertificaat en het tussenliggende CA-certificaat bevat, die verwijzen naar het Root CA-trustpoint) en een nieuw certificaat, dat het Root CA-certificaat bevat. In het geval dat je 2 tussentijds certificaat hebt, heb je 3 trustpoints nodig... enzovoort. Deze extra trustpoints bevatten alleen het verificatiecertificaat en wijzen naar het volgende verificatieniveau. Dit proces kan alleen in CLI worden uitgevoerd.
CLI-configuratie (bijvoorbeeld met een intermediaire CA) :
9800(config)#crypto pki trustpoint RootCA
9800(ca-trustpoint)#enrollment terminal
9800(ca-trustpoint)#chain-validation stop
9800(ca-trustpoint)#revocation-check none
9800(ca-trustpoint)#exit
9800(config)#crypto pki authenticate RootCA
Enter the base 64 encoded CA certificate.
End with a blank line or the word "quit" on a line by itself
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
Certificate has the following attributes:
Fingerprint MD5: 6CAC00D5 C5932D01 B514E413 D41B37A8
Fingerprint SHA1: 5ABD5667 26B7BD0D 83BDFC34 543297B7 3D3B3F24
% Do you accept this certificate? [yes/no]: yes
Trustpoint CA certificate accepted.
% Certificate successfully imported
9800(config)#crypto pki trustpoint 9800-CSR <<< This is the trustpoint created with the CSR
9800(ca-trustpoint)#chain-validation continue RootCA <<< This is the trustpoint created above
9800(config)#crypto pki authenticate 9800-CSR
Enter the base 64 encoded CA certificate.
End with a blank line or the word "quit" on a line by itself
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
Certificate has the following attributes:
Fingerprint MD5: DD05391A 05B62573 A38C18DD CDA2337C
Fingerprint SHA1: 596DD2DC 4BF26768 CFB14546 BC992C3F F1408809
Certificate validated - Signed by existing trustpoint CA certificate.
Trustpoint CA certificate accepted.
% Certificate successfully imported
Opmerking: als er meer dan één tussenliggende CA's in de certificeringsketen zijn, moet er een nieuw truspoint worden gegenereerd per extra certificeringsniveau. Deze truspoints moeten verwijzen naar het trustpoint dat het volgende niveau van certificatie met de bevel ketting-bevestiging bevat blijven <trustpoint-name>.
CLI-configuratie (vereenvoudigd voorbeeld met 2 tussenliggende CA’s):
9800(config)#crypto pki trustpoint RootCA
9800(ca-trustpoint)#enrollment terminal
9800(ca-trustpoint)#chain-validation stop
9800(ca-trustpoint)#revocation-check none
9800(ca-trustpoint)#exit
9800(config)#crypto pki authenticate RootCA
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
9800(config)#crypto pki trustpoint Inter2 <<< This is the trustpoint for the 1st intermediate CA (from top of the chain)
9800(ca-trustpoint)#enrollment terminal
9800(ca-trustpoint)#chain-validation continue RootCA <<< This is the trustpoint created above
9800(config)#crypto pki authenticate Inter2
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
9800(config)#crypto pki trustpoint 9800-CSR <<< This is the trustpoint created with the CSR
9800(ca-trustpoint)#chain-validation continue Inter2 <<< This is the trustpoint created above
9800(config)#crypto pki authenticate 9800-CSR
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
Stap 5: Voer het apparaatondertekende certificaat in op de 9800
Laad het ondertekende certificaat in de 9800 WLC. Breid de sectie Apparaatcertificaat importeren uit in hetzelfde menu. Kies het eerder gedefinieerde Trustpoint en plak het ondertekende apparaatcertificaat dat door de CA wordt verstrekt. Klik vervolgens op Importeren nadat de certificaatgegevens zijn geverifieerd.
CLI-configuratie:
9800(config)#crypto pki import 9800-CSR certificate
Enter the base 64 encoded certificate.
End with a blank line or the word "quit" on a line by itself
-----BEGIN CERTIFICATE-----
< 9800 device certificate >
-----END CERTIFICATE-----
% Router Certificate successfully imported
Op dit punt wordt het apparaatcertificaat samen met alle CA’s in de 9800 WLC geïmporteerd en is het certificaat nu klaar voor gebruik (GUI-toegang, Webex-autorisatie enzovoort)
Gebruik het nieuwe certificaat
Webbeheer (GUI-toegang)
Navigeer naar Beheer > Beheer > HTTP/HTTPS/Netconf en kies het geïmporteerde certificaat uit de vervolgkeuzelijst Vertrouwspunten.
CLI-configuratie:
9800(config)#ip http secure-trustpoint 9800.pfx
9800(config)#no ip http secure-server
9800(config)#ip http secure-server
Lokale webverificatie
Navigeer naar Configuration > Security > Web Auth, kies de globale parameterkaart en kies het geïmporteerde trustpoint uit de vervolgkeuzelijst Trustpoint. Klik op Bijwerken en toepassen om de wijzigingen op te slaan. Zorg ervoor dat de virtuele IPv4 Hostname overeenkomt met de algemene naam in het certificaat.
CLI-configuratie:
9800(config)#parameter-map type webauth global
9800(config-params-parameter-map)#type webauth
9800(config-params-parameter-map)#virtual-ip ipv4 192.0.2.1 virtual-host mywlc.local-domain
9800(config-params-parameter-map)#trustpoint 9800-CSR
Om certificaatgebruik bij te werken, moet u HTTP-services opnieuw opstarten:
9800(config)#no ip http server
9800(config)#ip http server
.
Overwegingen met betrekking tot hoge beschikbaarheid
Op een 9800-paar dat is geconfigureerd voor Stateful Switchover High Availability (HA SSO), worden alle certificaten bij eerste bulk-sync gerepliceerd van het primaire naar het secundaire. Dit omvat certificaten waar de privé sleutel op het controlemechanisme zelf werd geproduceerd, zelfs als de sleutel van RSA aan niet-uitvoerbaar wordt gevormd. Nadat het HA-paar is ingesteld, wordt elk nieuw certificaat geïnstalleerd op beide controllers en worden alle certificaten in real time gerepliceerd.
Na mislukking, gebruikt de vroegere-secundair-nu-actieve controlemechanisme de certificaten die van primair doorzichtig worden geërfd.
Hoe te verzekeren het Certificaat door Webbrowsers wordt vertrouwd
Er zijn enkele belangrijke overwegingen om ervoor te zorgen dat een certificaat wordt vertrouwd door webbrowsers:
- De algemene naam (of een SAN-veld) moet overeenkomen met de URL die door de browser wordt bezocht.
- Zij moet binnen de geldigheidstermijn ervan vallen.
- Het moet worden uitgegeven door een CA of keten van CA waarvan de wortel wordt vertrouwd door de browser. Hiervoor moet het certificaat dat door de webserver wordt verstrekt alle certificaten van de keten bevatten tot (niet noodzakelijk inbegrepen) een certificaat dat door de clientbrowser wordt vertrouwd (meestal de root-CA).
- Als het herroepingslijsten bevat, moet de browser hen kunnen downloaden en het certificaat CN moet niet worden vermeld.
Verifiëren
U kunt deze opdrachten gebruiken om de configuratie van certificaten te controleren:
9800#show crypto pki certificate 9800.pfx
Certificate
Status: Available
Certificate Serial Number (hex): 1236
Certificate Usage: General Purpose
Issuer:
cn=Chuu Intermediate CA
ou=Chuu Wireless
o=Chuu Inc
st=CDMX
c=MX
Subject:
Name: alz-9800
e=user@example.com
cn=alz-9800
ou=Cisco Systems
o=Wireless TAC
l=CDMX
st=CDMX
c=MX
Validity Date:
start date: 17:54:45 Pacific Sep 28 2021
end date: 17:54:45 Pacific Sep 26 2031
Associated Trustpoints: 9800.pfx
CA Certificate
Status: Available
Certificate Serial Number (hex): 1000
Certificate Usage: Signature
Issuer:
cn=Chuu Root CA
ou=Chuu Wireless
o=Chuu Inc
l=Iztapalapa
st=CDMX
c=MX
Subject:
cn=Chuu Intermediate CA
ou=Chuu Wireless
o=Chuu Inc
st=CDMX
c=MX
Validity Date:
start date: 05:10:34 Pacific Apr 29 2020
end date: 05:10:34 Pacific Apr 27 2030
Associated Trustpoints: 9800.pfx
9800#show ip http server secure status
HTTP secure server status: Enabled
HTTP secure server port: 443
HTTP secure server ciphersuite: 3des-ede-cbc-sha aes-128-cbc-sha
aes-256-cbc-sha dhe-aes-128-cbc-sha ecdhe-rsa-3des-ede-cbc-sha
rsa-aes-cbc-sha2 rsa-aes-gcm-sha2 dhe-aes-cbc-sha2 dhe-aes-gcm-sha2
ecdhe-rsa-aes-cbc-sha2 ecdhe-rsa-aes-gcm-sha2
HTTP secure server TLS version: TLSv1.2 TLSv1.1 TLSv1.0
HTTP secure server client authentication: Disabled
HTTP secure server trustpoint: 9800.pfx
HTTP secure server active session modules: ALL
U kunt uw certificaatketting op de 9800 verifiëren. In het geval van een apparaatcertificaat dat is afgegeven door een tussenliggende CA, zelf afgegeven door een wortel CA, hebt u één vertrouwenspunt per groep van twee certificaten, zodat elk niveau zijn eigen vertrouwenspunt heeft. In dit geval heeft de 9800 WLC 9800.pfx, met het device certificate (WLC-certificaat) en de CA (intermediaire CA) die het heeft afgegeven. Vervolgens een ander vertrouwenspunt met de Root CA die dat tussenliggende CA heeft uitgegeven.
9800#show crypto pki certificate 9800.pfx
Certificate
Status: Available
Certificate Serial Number (hex): 1236
Certificate Usage: General Purpose
Issuer:
cn=Chuu Intermediate CA
ou=Chuu Wireless
o=Chuu Inc
st=CDMX
c=MX
Subject:
Name: alz-9800
e=user@example.com
cn=alz-9800
ou=Cisco Systems
o=Wireless TAC
l=CDMX
st=CDMX
c=MX
Validity Date:
start date: 17:54:45 Pacific Sep 28 2021
end date: 17:54:45 Pacific Sep 26 2031
Associated Trustpoints: 9800.pfx
CA Certificate
Status: Available
Certificate Serial Number (hex): 1000
Certificate Usage: Signature
Issuer:
cn=Chuu Root CA
ou=Chuu Wireless
o=Chuu Inc
l=Iztapalapa
st=CDMX
c=MX
Subject:
cn=Chuu Intermediate CA
ou=Chuu Wireless
o=Chuu Inc
st=CDMX
c=MX
Validity Date:
start date: 05:10:34 Pacific Apr 29 2020
end date: 05:10:34 Pacific Apr 27 2030
Associated Trustpoints: 9800.pfx
9800#show crypto pki certificate 9800.pfx-rrr1
CA Certificate
Status: Available
Certificate Serial Number (hex): 00
Certificate Usage: Signature
Issuer:
cn=Chuu Root CA
ou=Chuu Wireless
o=Chuu Inc
l=Iztapalapa
st=CDMX
c=MX
Subject:
cn=Chuu Root CA
ou=Chuu Wireless
o=Chuu Inc
l=Iztapalapa
st=CDMX
c=MX
Validity Date:
start date: 04:58:05 Pacific Apr 29 2020
end date: 04:58:05 Pacific Apr 27 2030
Associated Trustpoints: 9800-CSR 9800.pfx-rrr1
Certificaatverificatie met OpenSSL
OpenSSL kan nuttig zijn om het certificaat zelf te verifiëren of om bepaalde conversiebewerkingen uit te voeren.
Zo geeft u een certificaat weer met OpenSSL:
openssl x509 -in
-text
Zo geeft u de inhoud van een MVO weer:
openssl req -noout -text -in
Als u het eindcertificaat op de 9800 WLC wilt verifiëren maar iets anders wilt gebruiken dan uw browser, kan OpenSSL dit doen en u veel details geven.
openssl s_client -showcerts -verify 5 -connect
:443
U kunt <wlcURL> vervangen door de URL van de webadmin van de 9800 of de URL van het gastportal (virtuele IP). Je kunt daar ook een IP-adres zetten. Het vertelt u welke certificaatketting wordt ontvangen maar de certificaatbevestiging kan nooit 100% correct zijn wanneer een IP adres in plaats van hostname wordt gebruikt.
Om de inhoud te bekijken en een PKCS12 (.pfx) certificaat of certificaatketen te verifiëren:
openssl pkcs12 -info -in
Hier is een voorbeeld van deze opdracht op een certificaatketen waarbij het apparaatcertificaat wordt afgegeven aan het Technical Assistance Center (TAC) door een intermediaire CA met de naam "intermediair.com", zelf afgegeven door een root-CA met de naam "root.com":
openssl pkcs12 -info -in chainscript2.pfx
Enter Import Password:
MAC Iteration 2048
MAC verified OK
PKCS7 Encrypted data: pbeWithSHA1And40BitRC2-CBC, Iteration 2048
Certificate bag
Bag Attributes
localKeyID: 1D 36 8F C2 4B 18 0B 0D B2 57 A2 55 18 96 7A 8B 57 F9 CD FD
subject=/C=BE/ST=Diegem/L=Diegem/O=Cisco/CN=TAC
issuer=/C=BE/ST=Diegem/O=Cisco/OU=TAC/CN=intermediate.com/emailAddress=int@int.com
-----BEGIN CERTIFICATE-----
< Device certificate >
-----END CERTIFICATE-----
Certificate bag
Bag Attributes: <No Attributes>
subject=/C=BE/ST=Diegem/O=Cisco/OU=TAC/CN=intermediate.com/emailAddress=int@int.com
issuer=/C=BE/ST=Diegem/L=Diegem/O=Cisco/OU=TAC/CN=RootCA.root.com/emailAddress=root@root.com
-----BEGIN CERTIFICATE-----
< Intermediate certificate >
-----END CERTIFICATE-----
Certificate bag
Bag Attributes: <No Attributes>
subject=/C=BE/ST=Diegem/L=Diegem/O=Cisco/OU=TAC/CN=RootCA.root.com/emailAddress=root@root.com
issuer=/C=BE/ST=Diegem/L=Diegem/O=Cisco/OU=TAC/CN=RootCA.root.com/emailAddress=root@root.com
-----BEGIN CERTIFICATE-----
< Root certificate >
-----END CERTIFICATE-----
PKCS7 Data
Shrouded Keybag: pbeWithSHA1And3-KeyTripleDES-CBC, Iteration 2048
Bag Attributes
localKeyID: 1D 36 8F C2 4B 18 0B 0D B2 57 A2 55 18 96 7A 8B 57 F9 CD FD
Key Attributes: <No Attributes>
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----BEGIN ENCRYPTED PRIVATE KEY-----
< Private key >
-----END ENCRYPTED PRIVATE KEY-----
Problemen oplossen
Gebruik deze opdracht voor probleemoplossing. Als dit op een externe sessie (SSH of telnet) gebeurt, is er een terminalmonitor nodig om de uitgangen weer te geven:
9800#debug crypto pki transactions
Succesvol scenario debug uitvoer
Deze output toont de verwachte output wanneer een succesvolle certificaatinvoer op een 9800 gebeurt. Gebruik dit voor verwijzing en identificeer de mislukkingsstaat:
Sep 28 17:35:23.242: CRYPTO_PKI: Copying pkcs12 from bootflash:9800.pfx
Sep 28 17:35:23.322: CRYPTO_PKI: Creating trustpoint 9800.pfx
Sep 28 17:35:23.322: %PKI-6-TRUSTPOINT_CREATE: Trustpoint: 9800.pfx created succesfully
Sep 28 17:35:23.324: CRYPTO_PKI: examining cert:
Sep 28 17:35:23.324: CRYPTO_PKI: issuerName=cn=Chuu Intermediate CA,ou=Chuu Wireless,o=Chuu Inc,st=CDMX,c=MX
Sep 28 17:35:23.324: CRYPTO_PKI: subjectname=e=user@example.com,cn=alz-9800,ou=Cisco Systems,o=Wireless TAC,l=CDMX,st=CDMX,c=MX
Sep 28 17:35:23.324: CRYPTO_PKI: adding RSA Keypair
Sep 28 17:35:23.324: CRYPTO_PKI: bitValue of ET_KEY_USAGE = 140
Sep 28 17:35:23.324: CRYPTO_PKI: Certificate Key Usage = GENERAL_PURPOSE
Sep 28 17:35:23.324: %CRYPTO_ENGINE-5-KEY_ADDITION: A key named 9800.pfx has been generated or imported by pki-pkcs12
Sep 28 17:35:23.331: CRYPTO_PKI: adding as a router certificate.Public key in cert and stored public key 9800.pfx match
Sep 28 17:35:23.333: CRYPTO_PKI: examining cert:
Sep 28 17:35:23.333: CRYPTO_PKI: issuerName=cn=Chuu Root CA,ou=Chuu Wireless,o=Chuu Inc,l=Iztapalapa,st=CDMX,c=MX
Sep 28 17:35:23.333: CRYPTO_PKI: subjectname=cn=Chuu Intermediate CA,ou=Chuu Wireless,o=Chuu Inc,st=CDMX,c=MX
Sep 28 17:35:23.333: CRYPTO_PKI: no matching private key presents.
[...]
Sep 28 17:35:23.335: CRYPTO_PKI: Setting the key_type as RSA
Sep 28 17:35:23.335: CRYPTO_PKI: Attempting to insert the peer's public key into cache
Sep 28 17:35:23.335: CRYPTO_PKI:Peer's public inserted successfully with key id 21
Sep 28 17:35:23.336: Calling pkiSendCertInstallTrap to send alert
Sep 28 17:35:23.337: CRYPTO_PKI: Deleting cached key having key id 31
Sep 28 17:35:23.337: CRYPTO_PKI: Attempting to insert the peer's public key into cache
Sep 28 17:35:23.337: CRYPTO_PKI:Peer's public inserted successfully with key id 32
Sep 28 17:35:23.338: CRYPTO_PKI: (A0323) Session started - identity selected (9800.pfx)
Sep 28 17:35:23.338: CRYPTO_PKI: Rcvd request to end PKI session A0323.
Sep 28 17:35:23.338: CRYPTO_PKI
alz-9800#: PKI session A0323 has ended. Freeing all resources.
Sep 28 17:35:23.338: CRYPTO_PKI: unlocked trustpoint 9800.pfx, refcount is 0
Sep 28 17:35:23.338: CRYPTO_PKI: Expiring peer's cached key with key id 32Public key in cert and stored public key 9800.pfx match
Sep 28 17:35:23.341: Calling pkiSendCertInstallTrap to send alert
Sep 28 17:35:23.341: CRYPTO_PKI: cert verified and inserted.
Sep 28 17:35:23.402: CRYPTO_PKI: Creating trustpoint 9800.pfx-rrr1
Sep 28 17:35:23.402: %PKI-6-TRUSTPOINT_CREATE: Trustpoint: 9800.pfx-rrr1 created succesfully
Sep 28 17:35:23.403: CRYPTO_PKI: Setting the key_type as RSA
Sep 28 17:35:23.404: CRYPTO_PKI: Attempting to insert the peer's public key into cache
Sep 28 17:35:23.404: CRYPTO_PKI:Peer's public inserted successfully with key id 22
Sep 28 17:35:23.405: Calling pkiSendCertInstallTrap to send alert
Sep 28 17:35:23.406: CRYPTO_PKI: no CRLs present (expected)
Sep 28 17:35:23.406: %PKI-6-PKCS12_IMPORT_SUCCESS: PKCS #12 import in to trustpoint 9800.pfx successfully imported.
Probeer een PKCS12-certificaat zonder CA te importeren
Als u een certificaat importeert en de fout krijgt: "CA cert is not found.", betekent dit dat uw .pfx bestand niet de hele keten bevat of dat één CA niet aanwezig is.
9800(config)#crypto pki import pkcs12.pfx pkcs12 bootflash:pks12.pfx password
% Importing pkcs12...
Source filename [pks12.pfx]?
Reading file from bootflash:pks12.pfx
% Warning: CA cert is not found. The imported certs might not be usable.
Als u de opdracht openssl pkcs12 -info -in <path to cert> uitvoert en slechts één certificaat met één private key displays, betekent dit dat de CA niet aanwezig is. Als vuistregel, maakt deze opdracht idealiter een lijst van uw gehele keten van certificaten. Het is niet vereist om de bovenste wortel CA te omvatten als het al bekend is bij de client browsers.
Eén manier om dit te verhelpen is door de PKCS12 te deconstrueren in PEM en de keten goed te herbouwen. In het volgende voorbeeld, hadden we een .pfx bestand dat alleen het apparaat (WLC) certificaat en de sleutel bevatte. Het werd uitgegeven door een tussenliggende CA (die niet aanwezig was in het PKCS12-bestand) die op zijn beurt werd ondertekend door een bekende root CA.
Stap 1. Exporteer de privé-sleutel.
openssl pkcs12 -in
-out cert.key -nocerts -nodes
Stap 2. Exporteer het certificaat als PEM.
openssl pkcs12 -in
-out certificate.pem -nokeys -clcerts
Stap 3. Download het tussenliggende CA-certificaat als PEM.
De bron van CA hangt af van de aard ervan, als het een openbare CA is dan is een online zoekopdracht voldoende om de repository te vinden. Anders moet de CA-beheerder de certificaten in Base64-formaat (.pem) leveren. Als er meerdere CA-niveaus zijn, groepeert u deze in één bestand, zoals het bestand dat wordt weergegeven aan het einde van het importproces van optie 1.
Stap 4. Herstel de PKCS 12 vanaf de sleutel, apparaatbeveiliging en CA-certificaat.
openssl pkcs12 -export -out fixedcertchain.pfx -inkey cert.key -in certificate.pem -certfile CA.pem
We hebben nu "fixedcertchain.pfx" die we graag importeren naar Catalyst 9800!
Uw persoonlijke sleutel exporteren
In het geval dat u naar een andere WLC migreert of uw WLC wilt herstellen, kunt u in een situatie belanden waar u uw privé-sleutel wilt exporteren om deze naar een andere locatie te verplaatsen.
#crypto key export rsa
pem terminal aes
Opmerkingen en beperkingen
- Cisco IOS® XE ondersteunt CA-certificaten niet met een geldige waarde na 2099: Cisco bug-id CSCvp64208
- Cisco IOS® XE ondersteunt de SHA256-berichtsamenvatting PKCS 12-bundel (SHA256 certs worden ondersteund, maar niet als de PKCS12-bundel zelf is ondertekend met SHA256): CSCvz41428. Dit probleem is opgelost in 17.12.1.
- U kunt fragmentatie zien als de WLC gebruikerscertificaten moet dragen, en het NAC/ISE-apparaat is bereikbaar via het internet (bijvoorbeeld in een SD-WAN-implementatie). Certificaten zijn bijna altijd groter dan 1500 bytes (wat betekent dat er meerdere RADIUS-pakketten worden verzonden om het certificaatbericht te dragen) en als u meerdere verschillende MTU over het netwerkpad hebt, kan er meer fragmentatie van de RADIUS-pakketten zelf optreden. In zulke gevallen raden we u aan om al uw UDP datagrammen voor het WLC-verkeer via dezelfde route te versturen om problemen zoals vertraging/jitter, die kunnen worden veroorzaakt door het weer op internet, te voorkomen