Certificates
Overview
Submenu: /certificate
Het general menu wordt gebruikt om certificaten te beheren, sjablonen toe te voegen, certificaten uit te geven, en CRL- en SCEP-clients te beheren.
Certificate Template
Certificaatsjablonen worden gebruikt om een gewenst certificaat voor te bereiden voor ondertekening.
Het Certificate-sjabloon wordt verwijderd direct nadat een certificaat is ondertekend of een certificaataanvraagcommando is uitgevoerd
/certificate
add name=CA-Template common-name=CAtemp key-usage=key-cert-sign,crl-sign
add name=Server common-name=server
add name=Client common-name=client
Om certificaten af te drukken:
[admin@4k11] /certificate> print detail
Flags: K - private-key; L - crl; C - smart-card-key; A - authority; I - issued, R - revoked; E - expired; T - trusted
0 name="CA-Template" key-type=rsa common-name="CAtemp" key-size=2048 subject-alt-name="" days-valid=365 key-usage=key-cert-sign,crl-sign
1 name="Server" key-type=rsa common-name="server" key-size=2048 subject-alt-name="" days-valid=365
key-usage=digital-signature,key-encipherment,data-encipherment,key-cert-sign,crl-sign,tls-server,tls-client
2 name="Client" key-type=rsa common-name="client" key-size=2048 subject-alt-name="" days-valid=365
key-usage=digital-signature,key-encipherment,data-encipherment,key-cert-sign,crl-sign,tls-server,tls-client
Eigenschappen van het certificaatsjabloon
Tijdens het aanmaken van het certificaatsjabloon is het mogelijk om meerdere parameters te definiëren en te configureren om aan specifieke eisen te voldoen.
| Property | Description |
|---|---|
| common-name (string) | Common name van het certificaat |
| copy-from(name) | Naam van het certificaat waarvan de algemene instellingen worden gekopieerd |
| country (string) | Land van de certificaatuitgever |
| days-valid (days Default: 365) | Aantal dagen dat het certificaat geldig is na ondertekening |
| digest-algorithm (md5 | sha1 | sha256 | sha384 | sha512 Default: sha256) | Hash-algoritme dat wordt gebruikt om het certificaat te ondertekenen. |
| key-size (1024 | 1536 | 2048 | 4096 | 8192 | prime256v1 | secp384r1 | secp521r1 Standaard: 2048) | Grootte van de publieke sleutel van het certificaat |
| key-usage (code-sign | crl-sign | decipher-only | dvcs | encipher-only | key-cert-sign | ocsp-sign | tls-client | content-commitment | data-encipherment | digital-signature | email-protect | key-agreement | key-encipherment | timestamp | tls-server Standaard: digital-signature,key-encipherment,data-encipherment,key-cert-sign,crl-sign,tls-server,tls-client) | Gebruik van het certificaat |
| locality (string) | Plaats van de certificaatuitgever |
| name (string) | Naam van het certificaat |
| organization (string) | Organisatie van de certificaatuitgever |
| state (string) | Provincie of staat van de certificaatuitgever |
| subject-alt-name (DNS: | IP: | email:) | Subject alternative name van het certificaat |
| trusted (no | yes) | Of het certificaat vertrouwd moet worden. Bij *yes,*wordt het certificaat gebruikt voor de verificatie van het hostcertificaat. |
| trust-store(all | capsman | dns | email | ipsec | mqtt | openflow | radius | sstp | userman | www | api | container | dot1x | fetch | lora | netwatch | ovpn | tr069 | wpa-eap | wiliot | logging Default: all) | Geef de service op die een specifiek certificaat mag gebruiken voor certificaatverificatie of het opbouwen van een trust-chain (www, sstp). |
| unit (string) | Organisatieonderdeel van de certificaatuitgever |
Eigenschappen van het certificaat
Voor een ondertekend certificaat zijn de meeste eigenschappen alleen-lezen, met uitzondering van name, trusted en trust-store.
| Property | Description |
|---|---|
| acme-status (string) | Status van de ACME-client |
| common-name (string) | Common name van het certificaat |
| copy-from(name) | Naam van het certificaat waarvan de algemene instellingen worden gekopieerd |
| country (string) | Land van de certificaatuitgever |
| days-valid (days) | Aantal dagen dat het certificaat geldig is na ondertekening |
| digest-algorithm (md5 | sha1 | sha256 | sha384 | sha512) | Hash-algoritme dat wordt gebruikt om het certificaat te ondertekenen |
| directory-url (string) | Directory-URL van de ACME-client |
| domain-names (string) | Domeinnamen die de ACME-client gebruikt |
| key-size (1024 | 1536 | 2048 | 4096 | 8192 | prime256v1 | secp384r1 | secp521r1) | Grootte van de publieke sleutel van het certificaat |
| key-usage (code-sign | crl-sign | decipher-only | dvcs | encipher-only | key-cert-sign | ocsp-sign | tls-client | content-commitment | data-encipherment | digital-signature | email-protect | key-agreement | key-encipherment | timestamp | tls-server) | Gebruik van het certificaat |
| locality (string) | Plaats van de certificaatuitgever |
| organization (string) | Organisatie van de certificaatuitgever |
| revoked (date) | Intrekkingstijd van het certificaat (alleen voor certificaten die in een specifiek apparaat zijn ondertekend en ingetrokken) |
| state (string) | Provincie of staat van de certificaatuitgever |
| subject-alt-name (DNS | IP | email) | Subject alternative name van het certificaat |
| trusted (no | yes) | Of het certificaat vertrouwd moet worden. Bij yes wordt het certificaat gebruikt voor de verificatie van het hostcertificaat. |
| trust-store(all | capsman | dns | email | ipsec | mqtt | openflow | radius | sstp | userman | www | api | container | dot1x | fetch | lora | netwatch | ovpn | tr069 | wpa-eap | wiliot | logging) | Geef de service op die een specifiek certificaat kan gebruiken voor certificaatverificatie of het opbouwen van een trust chain (www, sstp). |
| unit (string) | Organisatieonderdeel van de certificaatuitgever |
| serial-number (string) | Serienummer van het certificaat |
| fingerprint (string) | Vingerafdruk van het certificaat |
| akid (string) | Certificate authority ID |
| skid (string) | Certificate subject ID |
| issuer (string) | Certificate Authority |
| invalid-before (date) | Datum en tijd waarvoor het certificaat nog niet geldig is (begindatum van de geldigheid). |
| invalid-after (date) | Datum en tijd waarna het certificaat niet langer geldig is (vervaldatum). |
| expires-after (time) | Resterende tijd tot het verlopen |
| key-type (string) | Type private key |
| ca (string) | Naam van het CA-certificaat (alleen getoond voor certificaten die op een specifiek apparaat zijn ondertekend) |
Waarschuwing Als het CA-certificaat wordt verwijderd, worden alle uitgegeven certificaten in de keten ook verwijderd.
Certificaat ondertekenen
Certificaten moeten ondertekend zijn. In het volgende voorbeeld ondertekenen we certificaten en voegen we een CRL URL toe voor het servercertificaat:
/certificate
sign CA-Template
sign Client
sign Server ca-crl-host=192.168.88.1 name=ServerCA
Laten we controleren of de certificaten zijn ondertekend:
[admin@MikroTik] /certificate> print
Flags: K - private-key; L - crl; A - authority; T - trusted
Columns: NAME, COMMON-name, FINGERPRINT
# NAME COMMON FINGERPRINT
0 K AT CA-Template CAtemp 0c7aaa7607a4dde1bbf33deaae6be7bac9fe4064ba47d64e8a73dcefad6cfc38
1 K AT Client client b3ff25ecb166ea41e15733a7493003f3ea66310c10390c33e98fe32364c3659f
2 KLAT ServerCA server 152b88c9d81f4b765a59e2302e01efd1fbf11ceeed6e59f4974e87787a5bb980
Klik voor een videovoorbeeld hier.
Waarschuwing De duur van het key signing-proces hangt af van de key size van een specifiek certificaat. Bij waarden van 4k en hoger kan het aanzienlijke tijd kosten om dit specifieke certificaat te ondertekenen op apparaten met een minder krachtige CPU.
Certificaat exporteren
Het is mogelijk om clientcertificaten met sleutels en CA-certificaten in twee formaten te exporteren - PEM of PKCS12.
| Property | Description |
|---|---|
| export-passphrase (string Default: none) sensitive | Passphrase die zal worden gebruikt voor de encryptie van de private key van het geëxporteerde certificaat. |
| file-name (string Default: cert_export_[certificate name].crt/key/pkcs12) | Bestandsnaam van het geëxporteerde certificaat. |
| type (pem | pkcs12 Default: pem) | Type geëxporteerd certificaat. In het geval van PEM wordt het certificaat geëxporteerd met de extensie CRT; als export-passphrase is opgegeven, wordt ook een versleuteld privé KEY-bestand geëxporteerd. In het geval van PKCS12 wordt het certificaat geëxporteerd met de extensie P12; als export-passphrase is opgegeven, bevat het geëxporteerde certificaat een versleutelde privésleutel. Het PKCS12-bestand wordt versleuteld met AES. |
/certificate
export-certificate CA-Template
export-certificate ServerCA export-passphrase=yourpassphrase
export-certificate Client export-passphrase=yourpassphrase
Geëxporteerde certificaten zijn beschikbaar onder de sectie /file:
[admin@MikroTik] > file print
Columns: NAME, TYPE, SIZE, CREATION-TIME
# NAME TYPE SIZE CREATION-TIME
0 skins directory 2019-01-19 00:00:04
1 flash directory 2019-01-19 01:00:00
2 pub directory 2019-01-19 02:42:16
3 cert_export_CA-Template.crt .crt file 1119 2019-01-19 04:15:21
4 cert_export_ServerCA.crt .crt file 1229 2019-01-19 04:15:42
5 cert_export_ServerCA.key .key file 1858 2019-01-19 04:15:42
6 cert_export_Client.crt .crt file 1164 2019-01-19 04:15:55
7 cert_export_Client.key .key file 1858 2019-01-19 04:15:55
Waarschuwing Voor het exporteren van certificaten is het gebruikersbeleid "sensitive" vereist.
Certificaat importeren
Om certificaten te importeren, moeten de certificaten via een van de bestandsuploadmethoden naar een apparaat worden geüpload.
Certificaten moeten als bestand worden geïmporteerd.
Ondersteund worden de formaten PEM, DER, CRT en PKCS12. PKCS12-import ondersteunt AES- en 3DES-decryptie.
| Property | Description |
|---|---|
| name (string Standaard: file-name_number) | Een certificaatnaam die in de certificaatbeheerder wordt weergegeven |
| file-name (string) | Een bestandsnaam die wordt geïmporteerd |
| passphrase (string Standaard: none) gevoelig | Bestandspassphrase, indien aanwezig |
| trusted (yes | no Default: yes) | Voegt de vlag trusted toe voor het geïmporteerde certificaat |
| trust-store(all | capsman | dns | email | ipsec | mqtt | openflow | radius | sstp | userman | www | api | container | dot1x | fetch | lora | netwatch | ovpn | tr069 | wpa-eap | wiliot | logging Default: all) | Geef de service op die een specifiek certificaat mag gebruiken voor certificaatverificatie of het opbouwen van een trust-chain (www, sstp). |
[admin@MikroTik] > /certificate/import file-name=certificate_file_name name=name_example passphrase=file_passphrase
certificates-imported: 2
private-keys-imported: 1
files-imported: 1
decryption-failures: 0
keys-with-no-certificate: 0
[admin@MikroTik] > /certificate/print
Flags: K - PRIVATE-KEY; T - TRUSTED
Columns: NAME, COMMON-NAME
# NAME COMMON-NAME
0 KT name_example cert
1 T name_example_1 ca
CRL
RouterOS ondersteunt het controleren van de Certificate Revocation List (CRL).
Standaard wordt CRL niet gebruikt en worden certificaten niet gecontroleerd op ingetrokken status.
Schakel crl-use=yes in bij de certificaatinstelling zodat het systeem elk certificaat in een chain controleert tegen de bijbehorende CRL, en stel crl-download=yes in zodat RouterOS CRL's automatisch downloadt en bijwerkt.
Een CRL kan handmatig toegevoegd worden door de CRL-URL op te geven, of dynamisch bij het importeren van een certificaat dat een CRL Distribution Point bevat.
| Property | Description |
|---|---|
| akid (string) | CRL-autoriteits-ID |
| cert(string) | Certificaat (uit de certificaatopslag) waaruit het CRL Distribution Point is toegevoegd |
| dynamic (flag) | Als de CRL dynamisch is toegevoegd |
| expired (flag) | Als de CRL verlopen is |
| fingerprint (string) | CRL-vingerafdruk |
| Invalid (vlag) | Als de CRL ongeldig is (niet bijgewerkt) |
| last-update (date) | Datum en tijd van de laatste CRL-update |
| next-update (date) | Datum en tijd van de volgende CRL-update |
| num (integer) | CRL-nummer |
| removed (integer) | Aantal ingetrokken certificaten |
| signature (string) | CRL-handtekening |
| url (string) | CRL-URL |
| num (integer) | CRL-nummer |
Settings
/certificate/settings maakt het mogelijk om instellingen voor de Certificate Revocation List en de ingebouwde trust store te configureren.
| Property | Description |
|---|---|
| builtin-trust-store (all | default | capsman | dns | email | ipsec | mqtt | openflow | radius | sstp | userman | www | api | container | dot1x | fetch | lora | netwatch | ovpn | tr069 | wpa-eap | wiliot | logging | untrusted Standaard: default) | Services die built-in trust store authorities kunnen gebruiken voor certificaatverificatie. De huidige standaardwaarden: fetchmqttemailnetwatchcontainerloradnswwwreverse-proxy |
| crl-download (yes | no Default: no) | Of de CRL automatisch gedownload/bijgewerkt moet worden |
| crl-store (ram | system Default: ram) | Waar gedownloade CRL-informatie moet worden opgeslagen De CRL wordt elk uur automatisch vernieuwd voor certificaten met "trusted=yes" via het http-protocol (ldap en ftp worden momenteel niet ondersteund) |
| crl-use (yes | no Default: no) | Of de CRL gebruikt moet worden |
Waarschuwing Als
/certificate/settings/set crl-useis ingesteld opyes, controleert RouterOS de CRL voor elk certificaat in een certificaatketen; daarom moet een volledige certificaatketen op een apparaat worden geïnstalleerd - te beginnen bij de Root CA, de tussenliggende CA's (als die er zijn) en het certificaat dat voor een specifieke dienst wordt gebruikt.
Een voorbeeld van het importeren van een rootcertificaat.
ACME-client
De ACME-client automatiseert het verkrijgen en vernieuwen van meerdere TLS-certificaten via ACME.
Om via de CLI een nieuwe ACME-client toe te voegen, gebruikt u het commando /certificate/add-acme.
Bestaande ACME-clients verschijnen in de weergave Certificates en zijn gemarkeerd met de vlag a (acme-manage).
Domeinnamen moeten naar de router resolven en TCP-poort 80 moet bereikbaar zijn vanaf het WAN (de HTTP-01-challenge wordt gebruikt). Voor een IP Cloud-domeinnaam <id>.sn.mynetname.net wordt in plaats daarvan de DNS-01-challenge gebruikt.
Certificaten worden automatisch vernieuwd wanneer 80% van hun geldigheidsduur is verstreken.
Als het certificaat tijdens de initiële installatie niet wordt opgehaald, moet er een nieuwe ACME-client worden toegevoegd.
Properties
| Property | Description |
|---|---|
| directory-url (string) | ACME directory-URL |
| domain-names (string) | door komma's gescheiden lijst met domeinnamen |
| eab-hmac-key (string) | HMAC-sleutel voor ACME External Account Binding |
| eab-kid (string) | Sleutelidentificatie |
| name (string) | Naam van de ACME-client |
Handmatige ACME-vernieuwing
Om de vernieuwing van een ACME-certificaat handmatig te activeren:
/certificate/acme-renew [name]
Bijvoorbeeld:
/certificate/acme-renew numbers=0
Let's Encrypt-certificaat
Om een Let's Encrypt-certificaat met automatische certificaatvernieuwing op te halen, moet u handmatig een domeinnaam opgeven met de parameter domain-names:
/certificate/add-acme domain-names=router.example.com
Om een Let's Encrypt-certificaat te genereren voor een IP Cloud-naam (bijvoorbeeld example.sn.mynetname.net), geeft u de dns-name uit het menu /ip/cloud op als domeinnaam, of leest u deze inline uit met [/ip/cloud/get dns-name]:
/certificate/add-acme domain-names=[/ip/cloud/get dns-name]
Info De directory van Let's Encrypt wordt gebruikt als
directory-urlniet is opgegeven.
SCEP
SCEP gebruikt het HTTP-protocol en base64-gecodeerde GET-verzoeken. De meeste verzoeken zijn zonder authenticatie en versleuteling, maar belangrijke verzoeken kunnen indien nodig beschermd worden (versleuteld of ondertekend met een ontvangen publieke sleutel).
De SCEP-client in RouterOS zal:
- Haal het CA-certificaat op bij de CA-server of de RA (indien gebruikt).
- De gebruiker moet de fingerprint van het CA-certificaat vergelijken of nagaan of het van de juiste server afkomstig is.
- Genereer een zelfondertekend certificaat met een tijdelijke sleutel.
- Stuur een certificaataanvraag naar de server.
- Als de server met status x antwoordt, blijft de client verzoeken sturen totdat de server een fout of een goedkeuring stuurt.
De SCEP-server ondersteunt uitsluitend de uitgifte van één certificaat. RouterOS ondersteunt ook de opties renew en next-ca:
- renew - de mogelijkheid om het oude certificaat automatisch met dezelfde CA te vernieuwen.
- next-ca - de mogelijkheid om het huidige CA-certificaat te vervangen door het nieuwe.
De client vraagt de server periodiek om wijzigingen; als de server aangeeft dat de next-ca beschikbaar is, kan de client de volgende CA opvragen of wachten tot de CA bijna verloopt en dan de next-ca opvragen.
De RouterOS-client zal standaard proberen POST, AES en SHA256 te gebruiken als de server aangeeft dat te ondersteunen. Als de bovenstaande algoritmen niet worden ondersteund, probeert de client 3DES, DES en SHA1, MD5 te gebruiken.
SCEP-certificaten worden vernieuwd wanneer 3/4 van hun geldigheidsduur is verstreken.
Ingebouwde trust store-autoriteiten
RouterOS bevat een lijst met ingebouwde root-certificaatautoriteiten die specifieke services kunnen gebruiken voor de verificatie van hostcertificaten.
SMIPS-apparaten hebben een beperkte ingebouwde CA-truststore.
De lijst met diensten die ingebouwde root certificate authorities kunnen gebruiken is te vinden in het gedeelte Settings.
Het is mogelijk om DoH te gebruiken met certificaatvalidatie zonder dat u het betreffende root-certificaat handmatig hoeft te importeren.
De lijst met ingebouwde root certificate authorities is toegankelijk via System → Certificates → Built In CA, of via /certificate/builtin/.
Lijst met ingebouwde CA's
De volgende lijst met ingebouwde CA's is beschikbaar op alle architecturen behalve SMIPS.
| Organization | Common Name | Subject ID |
|---|---|---|
| Amazon | Amazon Root CA 1 | 8418CC8534ECBC0C94942E08599CC7B2104E0A08 |
| DigiCert Inc | DigiCert Assured ID Root CA | 45EBA2AFF492CB82312D518BA7A7219DF36DC80F |
| DigiCert Inc | DigiCert Assured ID Root G2 | CEC34AB99955F2B8DB60BFA97EBD56B59736A7D6 |
| DigiCert Inc | DigiCert Assured ID Root G3 | CBD0BDA9E1980551A14D37A28379CE8D1D2AE484 |
| DigiCert Inc | DigiCert Global Root CA | 03DE503556D14CBB66F0A3E21B1BC397B23DD155 |
| DigiCert Inc | DigiCert Global Root G2 | 4E2254201895E6E36EE60FFAFAB912ED06178F39 |
| DigiCert Inc | DigiCert Global Root G3 | B3DB48A4F9A1C5D8AE3641CC1163696229BC4BC6 |
| DigiCert Inc | DigiCert High Assurance EV Root CA | B13EC36903F8BF4701D498261A0802EF63642BC3 |
| DigiCert, Inc. | DigiCert TLS ECC P384 Root G5 | C151455059AB3EE72C5AFA2022120780887C116A |
| DigiCert, Inc. | DigiCert TLS RSA4096 Root G5 | 51331CED3640AF17D325CD6968F2AF4E233EB341 |
| DigiCert Inc | DigiCert Trusted Root G4 | ECD7E382D2715D644CDF2E673FE7BA98AE1C0F4F |
| GlobalSign | GlobalSign | 3DE629489BEA07CA21444A26DE6EDED283D09F59 |
| GlobalSign nv-sa | GlobalSign Root CA | 607B661A450D97CA89502F7D04CD34A8FFFCFD4B |
| GlobalSign | GlobalSign | 8FF04B7FA82E4524AE4D50FA639A8BDEE2DD1BBC |
| GlobalSign | GlobalSign | AE6C05A39313E2A2E7E2D71CD6C7F07FC86753A0 |
| GlobalSign nv-sa | GlobalSign Root E46 | 310A908FB6C69DD2444B80B5A2E61FB1124F1B95 |
| GlobalSign nv-sa | GlobalSign Root R46 | 035CAB738187A8CCB0A6D594E2369649FF05992C |
| The Go Daddy Group, Inc. | D2C4B0D291D44C1171B361CB3DA1FEDDA86AD4E3 |
|
| GoDaddy.com, Inc. | Go Daddy Root Certificate Authority - G2 | 3A9A8507106728B6EFF6BD05416E20C194DA0FDE |
| Sectigo Limited | Sectigo Public Server Authentication Root E46 | D122DA4C59F14B5F2638AA9DD6EEEB0DC3FBA961 |
| Sectigo Limited | Sectigo Public Server Authentication Root R46 | 5673586495F9921AB0122A046279A14015882149 |
| The USERTRUST Network | USERTrust ECC Certification Authority | 3AE10986D4CF19C29676744976DCE035C663639A |
| The USERTRUST Network | USERTrust RSA Certification Authority | 5379BF5AAA2B4ACF5480E1D89BC09DF2B20366CB |
| Internet Security Research Group | ISRG Root X1 | 79B459E67BB6E5E40173800888C81A58F6E99B6E |
| Internet Security Research Group | ISRG Root X2 | 7C4296AEDE4B483BFA92F89E8CCF6D8BA9723795 |
| ISRG | Root YE | A3C8265A8EA14CD03563FC9B23C83AAE56F34F56 |
| ISRG | Root YR | DEE75B60D0226D40287D3F0D01FEA4B552B45194 |
Ingebouwde CA's van SMIPS
SMIPS-apparaten hebben een beperkte ingebouwde CA-truststore:
| Organization | Common Name | Subject ID |
|---|---|---|
| DigiCert Inc | DigiCert Global Root G2 | 4E2254201895E6E36EE60FFAFAB912ED06178F39 |
| Internet Security Research Group | ISRG Root X1 | 79B459E67BB6E5E40173800888C81A58F6E99B6E |
| Internet Security Research Group | ISRG Root X2 | 7C4296AEDE4B483BFA92F89E8CCF6D8BA9723795 |
| ISRG | Root YE | A3C8265A8EA14CD03563FC9B23C83AAE56F34F56 |
| ISRG | Root YR | DEE75B60D0226D40287D3F0D01FEA4B552B45194 |