Manual:System/Certificates

From MikroTik Wiki
Jump to navigation Jump to search

Applies to RouterOS: v6.0 +

Summary

Sub-menu: /certificate
Package required: security
Standards: RFC 5280, draft-nourse-scep-22


Certificate manager is used to collect all certificates inside router, to manage and create serlf-signed certificates and to control and set SCEP related configuration.

Note: Starting from v6 certificate validity is shown using local time zone offset. In previous versions it was UTF.


Warning: RSA Key length must be at least 472 bits if certificate is used by SSTP. Shorter keys are considered as security threats.


Starting from v6rc10, CRL will be automatically renewed every hour for certificates which have "trusted=yes" using http protocol (ldap and ftp is currently unsupported). Segmented CRL is also currently unsupported.

RouterOS allows to manage and create self-signed CAs. Implementation was made based on RFC 5280 and all certificates are X.509 v3.


All certificate fingerprints are SHA1. All private keys and CA export passphrase are stored encrypted with hardware ID. CA CRL renewal happens at every certificate revocation and after 24hours.

Note: Time and date on routers MUST be correct



General Menu

Sub-menu: /certificate


General menu is used to manage certificates, add templates, issue certificates and manage SCEP Clients.

Note: Certificate templates are deleted right after certificate issue or certificate request command is executed


Note: If CA certificate is removed then all issued certificates in chain are also removed



Properties

Property Description
common-name (string; Default: )
country (string; Default: )
days-valid (integer [0..4294967295]; Default: )
email (string; Default: )
key-size (1024 | 1536 | 2048 | 4096 | 8192; Default: )
key-usage (list of [digital-signature | content-commitment | key-encipherment | data-encipherment | key-agreement | key-cert-sign | crl-sign | encipher-only | decipher-only]; Default: )
locality (string; Default: )
name (string; Default: ) Name of the certificate. Name can be edited.
organization (string; Default: )
state (string; Default: )
trusted (yes | no; Default: ) If set to yes certificate is included "in trusted certificate chain"
unit (string; Default: )


Read-only Properties

Property Description
authority ()
ca ()
ca-crl-host ()
ca-fingerprint ()
crl ()
dsa (yes | no)
expired (yes | no) Set to true if certificate is expired
fingerprint ()
invalid-after (date) The date after which certificate wil be invalid.
invalid-before (date) The date before which certificate is invalid.
issued ()
issuer (string)
private-key (yes | no)
req-fingerprint ()
revoked ()
scep-url (string)
serial-number (string)
smart-card-key (string)
status ()


Commands

Command Description
add () Adds new certificate template.
add-scep (name on-smart-card scep-url template) Add scep client. Command takes four parameters:
  • name - display name of scep client
  • on-smart-card - whether to use smart card
  • scep-url -
  • template - which template to use from template list
ca-set-passphrase ()
card-reinstall ()
card-verify ()
create-certificate-request () Create certificate request from specified template.
export () Export certificate to file. When export-passphrase is specified, certificate will be exported with encrypted key.
import (file-name) File name of certificate or key to be imported.
issued-revoke () Revoke issued certificate
scep-renew ()
sign () Sign CA certificate from created template. When signing CA you can specify ca-crl-host if crl should be used.
sign-certificate-request (ca, days-valid, file-name, key-bits) Generates certificate and key, except that standard parameters are taken from certificate request. Command takes four parameters:
  • ca - name of the CA certificate
  • days-valid - validity period
  • file-name - certificate request filename
  • key-bits - RSA key bits
sign () Sign certificates. Command takes 5 parameters:
  • template - which template to use
  • ca - which CA to use if signing issued certificates
  • ca-crl-host - CRL host if issuing CA certificate
  • ca-on-smart-card -
  • name - what name to assign to issued certificate.
CA certificates are created if key-usage=key-cert-sign set in the template.

SCEP

Sub-menu: /certificate
Standards: draft-nourse-scep-22

Simple Certificate Enrollment protocol (SCEP) was developed based on draft-nourse-scep-22.

The protocol is designed so that any user can request certificate as simple as possible. The protocol allows to issue and revoke certificates.


How SCEP works

Topology: CL ---- RA ---- CA

  • CL - client
  • RA - registration authority (proxy)
  • CA - certification authority (server)


SCEP is using HTTP protocol and base64 encoded GET requests. Most of requests are without authentication and cipher, however important ones can be protected if necessary (ciphered or signed using received public key).

SCEP client in RouterOS will:

  • get CA certificate from CA server or RA (if used);
  • user should compare fingerprint of the CA certificate or if it comes from the right server;
  • generate self-signed certificate with temporary key;
  • sends certificate request to the server;
  • if server respond with status x, then client keeps requesting until server sends an error or approval.


SCEP server supports issue of one certificate only. RouterOS supports also renew and next-ca options:

  • renew - possibility to renew old certificate automatically with the same CA.
  • next-ca - possibility to change current CA certificate to the new one. Client polls the server for any changes, if server advertise that next-ca is available, then client may request next CA or wait until CA almost expires and then request next-ca.


RouterOS Server also supports POST' operation, 3DES cipher and SHA1 hashing. If client does not support these features then http GET, DES cipher and MD5 hashing is used.


RouterOS client by default will try to use POST, 3DES and SHA1 if server advertises that.


Client

Sub-menu: /certificate scep client


Properties

Property Description
ca-identity (string; Default: DummyCAIdentity)
challenge-password (string; Default: "") OTP password on the server used to grant certificate automatically after request.
common-name (string; Default: )
country (string; Default: )
disabled (yes | no; Default: no)
email (string; Default: )
fingerprint-algorithm (md5 | sha1; Default: sha1)
key-bits (1024 | 2048 | 4096; Default: 1024)
locality (string; Default: )
name (string; Default: ) Short descriptive name of an item
organziation (string; Default: )
path (string; Default: ) Path of certificate located on the server. If server is RouterOS then you should add "scep/"+path since certificates on server are stored in "scep" dir.
serial-number (string; Default: )
server (IP | IPv6; Default: ) IP or IPv6 address of the SCEP server
state (string; Default: )
store-name (string; Default: ) Name of the certificate which will be used after importing into certificate store.
unit (string; Default: )


Status Properties

Property Description
ca-fingerprint (string)
req-fingerprint (string)
status (string) Shows the current status of the client. Idle, pending, requesting etc.


Commands

Command Description
renew (ca_client_name) Renew Ca certificate of specified CA client Name.


Server

Sub-menu: /certificate scep server



OTP

Sub-menu: /certificate scep server otp


Transactions

Sub-menu: /certificate scep server transactions



[ Top | Back to Content ]