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:
- De 9800 WLC configureren, het toegangspunt (AP) voor basisbediening
- Hoe de OpenSSL applicatie te gebruiken
- Public Key Infrastructure (PKI) en digitale certificaten
Gebruikte componenten
De informatie in dit document is gebaseerd op de volgende software- en hardware-versies:
- 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 ondersteunen 9800s geen ander certificaat voor webverificatie en webbeheer. De weblogportal gebruikt altijd het standaardcertificaat.
Op 16.11.X kunt u een speciaal certificaat voor webverificatie configureren en het vertrouwenspunt binnen de globale parametertoewijzing definiëren.
Er zijn twee opties om een certificaat te krijgen voor een 9800 WLC.
- Genereer een Certificate Signing Request (CSR) met OpenSSL of een andere SSL-toepassing. Genereer (met behulp van OpenSSL) of ontvang een PKCS12-certificaat ondertekend door uw Certificate Authority (CA) en laad het rechtstreeks op de 9800 WLC. Dit betekent dat de privésleutel is gebundeld met dat certificaat.
- Gebruik de 9800 WLC om een MVO, laat het ondertekenen door een CA en laad vervolgens elk certificaat in de keten handmatig op de 9800 WLC.
Gebruik degene die het beste bij je behoeften past.
Optie 1 - Een reeds bestaand PKCS12-ondertekend certificaat laden op de WLC
Stap 1: Een aanvraag voor de ondertekening van een certificaat maken
Als u het certificaat nog niet hebt, moet u een certificaatondertekeningsverzoek (CSR) genereren om bij uw CA in te dienen.
Maak een tekstbestand met de naam "openssl.conf" van uw huidige directory (op een laptop waarop OpenSSL is geïnstalleerd), kopieer en plak deze regels om het veld Alternatieve namen (SAN) voor onderwerpen in nieuw gemaakte CSR's op te nemen.
[ 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 hoofdvelden door 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 vertrouwen.
In het geval van webbeheerder moet u ook SAN-velden vullen met variaties van de URL (bijvoorbeeld alleen hostnaam of volledige gekwalificeerde domeinnaam (FQDN)), zodat het certificaat overeenkomt, ongeacht wat de admin typt in de URL in de adresbalk van de browser.
Genereer de CSR van 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 de sleutel als private.key in de directory waar OpenSSL wordt uitgevoerd, tenzij het volledige pad naar de opdracht wordt gegeven.
Let op: Zorg ervoor dat het private.key-bestand veilig blijft omdat het wordt gebruikt om communicatie te versleutelen
Stap 2: Controleer de inhoud van uw MVO
U kunt de inhoud van uw CSR kopiëren en plakken in een online tool (type bijvoorbeeld "CSR-decoder" op Google) om de inhoud ervan te controleren. Zorg ervoor dat de SAN (alternatieve naam van het onderwerp) is opgenomen in de CSR, omdat deze door een bepaalde browser is vereist.
U kunt de inhoud van de CSR ook verifiëren met OpenSSL met behulp van deze opdracht:
openssl req -noout -text -in myCSR.csr
Stap 3: de MVO indienen bij uw CA
U kunt deze CSR vervolgens aan uw CA verstrekken om deze te laten ondertekenen en een certificaat terug te ontvangen. Zorg ervoor dat de volledige keten wordt gedownload van de CA en dat het certificaat in Base64-formaat is voor het geval dat het verder moet worden gemanipuleerd. U ontvangt meestal 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 pkcs12 bestand op de WLC
Als u de CSR op uw computer hebt gegenereerd met OpenSSL, bestaat de kans dat uw CA u alleen het ondertekende certificaat verstrekt, samen met zijn eigen certificaat en de eventuele 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 deze u rechtstreeks het PKCS12-bestand (PFX-bestand) bieden en in dat geval hoeft u deze eenvoudig op de controller te importeren. Raadpleeg de sectie "Importeer het PKCS12-bestand" om dit te doen.
Het PKCS12-bestand maken
Het is mogelijk om in een situatie terecht te komen waarin je een private key file en certificaat hebt in PEM of CRT formaat en deze wilt combineren in een PKCS12 (.pfx) formaat om te uploaden naar de 9800 WLC. U kunt ook een of meerdere CA-certificaten hebben die ook in dit pfx-bestand moeten worden opgenomen voordat u in de 9800 WLC kunt importeren.

Het eerste dat u zou moeten doen, is alle tussenliggende CA's en het Root CA-bestand combineren tot één bestand. Kopieer en plak de inhoud samen (sla het bestand op in .pem formaat):
----- BEGIN Certificate --------
<intermediate CA cert>
------END Certificate --------
-----BEGIN Certificate -----
<root CA cert>
-----END Certificate--------
Vervolgens kunt u uw .pfx-bestand maken met behulp van 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: gebruik tijdens het configureren van een wachtwoord voor het .pfx-bestand niet de ASCII-tekens: *, ^, κ, [], ", en +. Het gebruik van deze ASCII-tekens resulteert in een fout met een slechte configuratie en importeert het certificaat niet naar de controller.
Opmerking: De "-macalg sha1" vlag is nodig op versies ouder dan 17.12.1 als gevolg van Cisco bug ID CSCvz41428. De "-legacy -descert" is ook nodig omdat OpenSSL versie 3 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 van plan bent het pfx-bestand op dergelijke versies te 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 zowel de volledige certificaatketen als de private key. Dit bestand is beveiligd met het wachtwoord dat u eerder hebt geconfigureerd.
Importeer het PKCS12-bestand
U kunt nu het .pfx-bestand importeren op de 9800 WLC, met behulp van de GUI of de CLI.
Gebruik van de GUI:
Open de 9800 WLC GUI en ga naar Configuratie > Beveiliging > PKI-beheer, klik op het tabblad Certificaat toevoegen. Vouw het menu PKCS12-certificaat importeren uit. Als het .pfx-bestand op uw computer is opgeslagen, kiest u de optie Desktop (HTTPS) in de vervolgkeuzelijst Transport Type, waarmee HTTP via de browser kan worden geüpload. Certificaatwachtwoord verwijst naar het wachtwoord dat werd gebruikt toen het PKCS12-certificaat werd gegenereerd.

Controleer of de gegevens juist zijn en klik op Importeren. Daarna ziet u het nieuwe certificaatsleutelpaar voor dit nieuwe trustpoint geïnstalleerd op het tabblad Generatie sleutelpaar. Na succesvolle import creëert de 9800 WLC ook een extra vertrouwenspunt voor CA's met meerdere niveaus.
() Let op: De volgende fout wordt gezien wanneer specifieke ASCII-tekens zijn opgenomen in het wachtwoord van het .pfx-bestand: Fout bij het configureren van het leesbestand van bootflash pfx CRYPTO PKI Import PKCS12 operation failed bad HMAC Mogelijk veroorzaakt een slecht wachtwoord of beschadigd PKCS12 Met de volgende tekens in het wachtwoord veroorzaakt de fout: *, ^, Ṭ, [], \ Bij het opnemen van de tekens (" en +) verschijnt de volgende fout: "Fout in configuratie". Het certificaat wordt niet geïmporteerd in de WLC.

Opmerking: momenteel presenteert de 9800 WLC niet de volledige certificaatketen wanneer een specifiek vertrouwenspunt wordt gebruikt voor webauth of webadmin, maar presenteert het het apparaatcertificaat en de onmiddellijke uitgever ervan. Dit wordt gevolgd met Cisco bug ID CSCwa23606, 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 bestandsnaam van het certificaat als de naam van het trustpoint exact overeenkomen met de 9800 WLC om extra trustpoints te maken voor CA's met meerdere niveaus.
Optie 2 - Een sleutel en een certificaatondertekeningsverzoek (CSR) definiëren op de 9800 WLC
Stap 1: Genereer een RSA-sleutelpaar voor algemene doeleinden
Navigeer naar Configuratie > Beveiliging > PKI-beheer, kies het tabblad Generatie sleutelpaar en klik op + Toevoegen. Voer de gegevens in, zorg ervoor dat het selectievakje Exportable Key is ingeschakeld en klik vervolgens op Genereren.

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 Certificaatondertekeningsverzoek genereren uit, vul de details in en kies het eerder gemaakte sleutelpaar uit de vervolgkeuzelijst. Het is belangrijk dat de domeinnaam overeenkomt met de URL die is gedefinieerd voor clienttoegang op de 9800 WLC (webbeheerpagina, webverificatiepagina, enzovoort), Certificaatnaam is de naam van het trustpoint, zodat u kunt benoemen op basis van het gebruik ervan.
Opmerking: De 9800 WLC's ondersteunen certificaten met jokerparameters binnen hun algemene naam.

Controleer of de informatie juist is en klik vervolgens op Genereren. Hiermee wordt de CSR weergegeven in een tekstvak naast het oorspronkelijke formulier

Kopiëren slaat een kopie op het klembord op, zodat u deze in een teksteditor kunt plakken en de CSR kunt opslaan.
Opslaan op apparaat maakt een kopie van de CSR en slaat deze op in bootflash:/csr. Voer de volgende opdrachten uit om het te zien:
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 de configuratie van de onderwerpnaam:
C: Land, het moet slechts twee hoofdletters zijn.
ST: Sommige staat, verwijst naar de staat of provincie naam.
L: Locatienaam, verwijst naar de stad.
O: Organisatienaam, verwijst naar bedrijf.
OU: naam van de organisatie-eenheid, kan verwijzen naar sectie.
CN: (Common Name) Verwijst naar het onderwerp waaraan het certificaat is afgegeven, u moet 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 ertoe leiden dat sommige browserwaarschuwingen vanwege het SAN niet aanwezig zijn, om dit te voorkomen, maakt u vervolgens de sleutel en het vak CSR off-box zoals weergegeven in optie 1.
Stap 3: Dien uw MVO in bij uw CA (certificeringsinstantie)
De volledige string moet naar de CA worden gestuurd om deze te laten ondertekenen.
-----BEGIN CERTIFICATE REQUEST-----
<Certificate Request>
-----END CERTIFICATE REQUEST-----
Als u een Windows Server-certificeringsinstantie 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 meestal van uw CA het ondertekende apparaatcertificaat, de tussenliggende CA(s) (indien aanwezig) certificaten en het Root CA-certificaat.
Stap 4: Authenticeer de CA(s) naar de 9800 WLC
Als uw certificaat rechtstreeks is ondertekend door de root-CA, kunt u de instructies van Stap4a controleren (alles kan worden gedaan met behulp van de GUI).
Als uw certificaat is ondertekend door een CA met meerdere niveaus, gaat u naar instructies die worden vermeld op Stap4b (CLI is in dit geval vereist).
Stap 4a: de CA-hoofdmap verifiëren
Maak 9800 vertrouwen op de uitgevende instelling CA. Download of ontvang het CA-certificaat van de uitgever in .pem-formaat (Base64). Vouw de sectie Authentication Root CA binnen hetzelfde menu uit, kies het eerder gedefinieerde trustpoint uit de vervolgkeuzelijst Trustpoint en plak het CA-certificaat van de uitgever. Controleer of de details 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: CA op meerdere niveaus verifiëren
In het scenario waarin meerdere autorisatieniveaus bestaan, is voor elk aanvullend CA-niveau een nieuw trustpoint vereist. Als uw certificaat rechtstreeks is ondertekend door de basiscertificeringsinstantie, raadpleegt u stap4a als slechts één vertrouwenspunt (het vertrouwenspunt dat is gemaakt bij het genereren van de CSR) vereist is.
Als u één tussenliggende CA en één hoofdCA hebt, hebt u twee vertrouwde punten nodig: de reeds gemaakte (die het apparaatcertificaat en het tussenliggende CA-certificaat bevat, verwijzend naar het hoofdCA-vertrouwenspunt) en een nieuwe, die het hoofdCA-certificaat bevat. Als je 2 tussenliggende certificaten hebt, heb je 3 trustpoints nodig... en ga zo maar door. Deze extra vertrouwenspunten bevatten alleen het authenticatiecertificaat en wijzen naar het volgende niveau van authenticatie. Dit proces kan alleen in CLI worden uitgevoerd.

CLI-configuratie (voorbeeld met één tussenliggende 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 een nieuw vertrouwenspunt worden gegenereerd per extra certificeringsniveau. Deze truspoints moeten verwijzen naar het trustpoint dat het volgende certificeringsniveau bevat met de opdracht ketenvalidatie doorgaan <trustpoint-name>.
CLI-configuratie (vereenvoudigd voorbeeld met 2 intermediaire 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: Importeer het door het apparaat ondertekende certificaat op de 9800
Laad het ondertekende certificaat in de 9800 WLC. Vouw het gedeelte Apparaatcertificaat importeren uit in hetzelfde menu. Kies het eerder gedefinieerde Trustpoint en plak het ondertekende apparaatcertificaat dat door de certificeringsinstantie wordt geleverd. Klik vervolgens op importeren zodra 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 geïmporteerd in de 9800 WLC en is het certificaat nu klaar om te worden gebruikt (GUI-toegang, WebAuth enzovoort)
Gebruik het nieuwe certificaat
Webbeheer (GUI-toegang)
Navigeer naar Beheer > Beheer > HTTP/HTTPS/Netconf en kies het geïmporteerde certificaat in de vervolgkeuzelijst Vertrouwenspunten.

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 Configuratie > Beveiliging > Web Auth, kies de globale parametertoewijzing en kies het geïmporteerde trustpoint in de vervolgkeuzelijst Trustpoint. Klik op Bijwerken en toepassen om de wijzigingen op te slaan. Controleer of de virtuele IPv4-hostnaam 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
Start HTTP-services opnieuw op om het gebruik van certificaten bij te werken:
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 de eerste bulksynchronisatie gerepliceerd van de primaire naar de secundaire. Dit geldt ook voor certificaten waarbij de privésleutel op de controller zelf is gegenereerd, zelfs als de RSA-sleutel is geconfigureerd om niet te kunnen worden geëxporteerd. Nadat het HA-paar is vastgesteld, wordt elk nieuw certificaat geïnstalleerd op beide controllers en worden alle certificaten in realtime gerepliceerd.
Na het falen gebruikt de voormalige secundaire-nu-actieve controller de certificaten die zijn geërfd van de primaire op transparante wijze.
Hoe ervoor te zorgen dat het certificaat wordt vertrouwd door webbrowsers
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.
- Het moet binnen de geldigheidsperiode zijn.
- Het moet worden uitgegeven door een CA of keten van CA waarvan de root wordt vertrouwd door de browser. Hiervoor moet het certificaat dat door de webserver wordt geleverd alle certificaten van de keten bevatten totdat (niet noodzakelijkerwijs inbegrepen) een certificaat wordt vertrouwd door de clientbrowser (meestal de root-CA).
- Als het herroepingslijsten bevat, moet de browser deze kunnen downloaden en mag het CN-certificaat 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 certificaatketen controleren op de 9800. In het geval van een apparaatcertificaat dat is uitgegeven door een tussenliggende CA, die zelf is uitgegeven door een basiscertificeringsinstantie, 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 apparaatcertificaat (WLC-certificaat) en de bijbehorende CA (intermediate CA). Dan nog een trustpoint met de Root CA die die 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 conversiebewerkingen uit te voeren.
Om een certificaat met OpenSSL weer te geven:
openssl x509 -in -text
Om de inhoud van een CSR weer te geven:
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 gastportaal (virtueel IP). U kunt daar ook een IP-adres plaatsen. Het vertelt u welke certificaatketen wordt ontvangen, maar certificaatvalidatie kan nooit 100% correct zijn wanneer een IP-adres wordt gebruikt in plaats van een hostnaam.
Om de inhoud te bekijken en een PKCS12 (.pfx) certificaat of certificaatketen te verifiëren:
openssl pkcs12 -info -in
Hier is een voorbeeld van dit commando op een certificaatketen waarbij het apparaatcertificaat wordt uitgegeven aan het Technical Assistance Center (TAC) door een tussenliggende CA genaamd "intermediate.com", zelf uitgegeven door een Root CA genaamd "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 om problemen op te lossen. Indien gedaan op een externe sessie (SSH of telnet) dan terminal monitor is nodig om uitgangen weer te geven:
9800#debug crypto pki transactions
Geslaagde foutopsporingsuitvoer voor scenario
Deze uitvoer geeft de verwachte uitvoer weer wanneer een certificaat met succes wordt geïmporteerd op een 9800. Gebruik dit ter referentie en identificeer de faaltoestand:
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 te importeren dat geen CA heeft
Als u een certificaat importeert en de fout krijgt: "CA cert is niet gevonden.", betekent dit dat uw .pfx-bestand niet de hele keten bevat of dat er geen CA 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 er slechts één certificaat met één privésleutel wordt weergegeven, betekent dit dat de CA niet aanwezig is. Als vuistregel geeft deze opdracht idealiter uw hele certificaatketen weer. Het is niet vereist om de bovenste root-CA op te nemen als deze al bekend is bij de clientbrowsers.
Een manier om dit op te lossen is om de PKCS12 te deconstrueren in PEM en de keten op de juiste manier opnieuw op te bouwen. In het volgende voorbeeld hadden we een .pfx-bestand dat alleen het apparaatcertificaat (WLC) en de bijbehorende 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 private sleutel naar buiten.
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, is een online zoekopdracht voldoende om de repository te vinden. Anders moet de CA-beheerder de certificaten in Base64-indeling (.pem) opgeven. Als er meerdere CA-niveaus zijn, groepeert u deze in een enkel bestand, zoals aan het einde van het importproces van optie 1.
Stap 4. Bouw de PKCS 12 opnieuw samen met de sleutel, het apparaatcertificaat en het CA-certificaat.
openssl pkcs12 -export -out fixedcertchain.pfx -inkey cert.key -in certificate.pem -certfile CA.pem
We hebben nu "fixed certchain.pfx" die we met plezier kunnen importeren naar de Catalyst 9800!
Uw persoonlijke sleutel exporteren
Als u naar een andere WLC migreert of uw WLC wilt herstellen, kunt u in een situatie terechtkomen waarin 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 biedt geen ondersteuning voor CA-certificaten met een geldige waarde na 2099: Cisco bug ID CSCvp64208
- Cisco IOS® XE biedt geen ondersteuning voor de SHA256 message digest 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 via internet bereikbaar is (bijvoorbeeld in een SD-WAN-implementatie). Certificaten zijn bijna altijd groter dan 1500 bytes (wat betekent dat verschillende RADIUS-pakketten worden verzonden om het certificaatbericht te dragen) en als u meerdere verschillende MTU's over het netwerkpad hebt, kan fragmentatie van de RADIUS-pakketten zelf optreden. In dergelijke gevallen raden we u aan al uw UDP-datagrammen voor het WLC-verkeer over hetzelfde pad te verzenden om problemen zoals vertraging / jitter te voorkomen die kunnen worden veroorzaakt door internetweer