Archiv der Kategorie: PKIT Handbuch

Handbuch Seiten PKIT

Digitale ID für sichere Emails

Die digitale Signatur und Verschlüsslung von Emails ist mit einer selbstsignierten und privaten PKI kein Problem.

PKIT bietet mit dem Vendor-Typ "email" alles was hierzu nötig ist.

Beispiel in Candidates:

email:ca@pkitool.de,email:ca@pkitool.de

Damit wird ein Zertifikat (eine digitale ID) für diese Mailadresse erzeugt. Importieren Sie diese digitale ID in den Trust-Center Einstellungen.

Konfiguration Beispiel Outlook

Importieren Sie das P12 Zertifikat aus PKIT (Ordner certs/email/) in den Trust Center Einstellungen.

 

vi Editor in PKIT

Das PKIT nutzt den vim Editor. Die Bedienung und Funktionen sind in unzähligen Quellen im Internet zu finden. Trotzdem beschreibe ich hier die wichtigsten Funktionen und gebe Ihnen Praxistips an die Hand. Dies sollte zur Bedienung des PKIT ausreichen.

Dokument speichern und schliessen

[ESC] à : x

Alle Zeichen (Umbruch, Leerzeichen, Tabstopps) anzeigen

[ESC] à :set list

Abschalten der Funktion mit [ESC] à :set nolist

Zeile(n) löschen

[ESC] à 22 dd     # löscht 22 Zeilen ab Cursor

[ESC] à dd # löscht die aktuelle Zeile unter dem Cursor

Änderungen rückgängig machen

[ESC] u

Syntax Highlighting ab / abschalten

[ESC] :sy on

[ESC] :sy off

Dokument im UNIX-Mode speichern

[ESC] :set ff=unix

[ESX] : x

 

VI / VIM Cheats

Global

:help keyword # open help for keyword

:o file       # open file

:saveas file  # save file as

:close        # close current pane

Cursor movement

h        # move cursor left

j        # move cursor down

k        # move cursor up

l        # move cursor right

H        # move to top of screen

M        # move to middle of screen

L        # move to bottom of screen

w        # jump forwards to the start of a word

W        # jump forwards to the start of a word (words can contain punctuation)

e        # jump forwards to the end of a word

E        # jump forwards to the end of a word (words can contain punctuation)

b        # jump backwards to the start of a word

B        # jump backwards to the start of a word (words can contain punctuation)

0        # jump to the start of the line

^        # jump to the first non-blank character of the line

$        # jump to the end of the line

g_       # jump to the last non-blank character of the line

gg       # go to the first line of the document

G        # go to the last line of the document

5G       # go to line 5

fx       # jump to next occurrence of character x

tx       # jump to before next occurrence of character x

}        # jump to next paragraph (or function/block, when editing code)

{        # jump to previous paragraph (or function/block, when editing code)

zz       # center cursor on screen

Ctrl + b # move back one full screen

Ctrl + f # move forward one full screen

Ctrl + d # move forward 1/2 a screen

Ctrl + u # move back 1/2 a screen

Insert mode - inserting/appending text

i        # insert before the cursor

I        # insert at the beginning of the line

a        # insert (append) after the cursor

A        # insert (append) at the end of the line

o        # append (open) a new line below the current line

O        # append (open) a new line above the current line

ea       # insert (append) at the end of the word

Esc      # exit insert mode

Editing

r        # replace a single character

J        # join line below to the current one

cc       # change (replace) entire line

cw       # change (replace) to the start of the next word

ce       # change (replace) to the end of the next word

cb       # change (replace) to the start of the previous word

c0       # change (replace) to the start of the line

c$       # change (replace) to the end of the line

s        # delete character and substitute text

S        # delete line and substitute text (same as cc)

xp       # transpose two letters (delete and paste)

.
# repeat last command

u        # undo

Ctrl + r # redo

Marking text (visual mode)

v        # start visual mode, mark lines, then do a command (like y-yank)

V        # start linewise visual mode

o        # move to other end of marked area

O        # move to other corner of block

aw       # mark a word

ab       # a block with ()

aB       # a block with {}

ib       # inner block with ()

iB       # inner block with {}

Esc      # exit visual mode

Ctrl + v # start visual block mode

Visual commands

>
# shift text right

<
# shift text left

y       # yank (copy) marked text

d       # delete marked text

~
# switch case

Cut and paste

yy       # yank (copy) a line

2yy      # yank (copy) 2 lines

yw       # yank (copy) the characters of the word from the cursor position to the start of the next word

y$       # yank (copy) to end of line

p        # put (paste) the clipboard after cursor

P        # put (paste) before cursor

dd       # delete (cut) a line

2dd      # delete (cut) 2 lines

dw       # delete (cut) the characters of the word from the cursor position to the start of the next word

D        # delete (cut) to the end of the line

d$       # delete (cut) to the end of the line

d^       # delete (cut) to the first non-blank character of the line

d0       # delete (cut) to the begining of the line

x        # delete (cut) character

Search and replace

/pattern       # search for pattern

?pattern       # search backward for pattern

\vpattern      # 'very magic' pattern: non-alphanumeric characters are interpreted as special regex symbols (no escaping needed)

n              # repeat search in same direction

N              # repeat search in opposite direction

:%s/old/new/g  # replace all old with new throughout file

:%s/old/new/gc # replace all old with new throughout file with confirmations

:noh           # remove highlighting of search matches

Search in multiple files

:vimgrep /pattern/ {file} # search for pattern in multiple files

:cn                       # jump to the next match

:cp                       # jump to the previous match

:copen                    # open a window containing the list of matches

Exiting

:w              # write (save) the file, but don't exit

:w !sudo tee %  # write out the current file using sudo

:wq or :x or ZZ # write (save) and quit

:q              # quit (fails if there are unsaved changes)

:q! or ZQ       # quit and throw away unsaved changes

Working with multiple files

:e file       # edit a file in a new buffer

:bnext or :bn # go to the next buffer

:bprev or :bp # go to the previous buffer

:bd           # delete a buffer (close a file)

:ls           # list all open buffers

:sp file      # open a file in a new buffer and split window

:vsp file     # open a file in a new buffer and vertically split window

Ctrl + ws     # split window

Ctrl + ww     # switch windows

Ctrl + wq     # quit a window

Ctrl + wv     # split window vertically

Ctrl + wh     # move cursor to the left window (vertical split)

Ctrl + wl     # move cursor to the right window (vertical split)

Ctrl + wj     # move cursor to the window below (horizontal split)

Ctrl + wk     # move cursor to the window above (horizontal split)

Tabs

:tabnew or :tabnew file # open a file in a new tab

Ctrl + wT               # move the current split window into its own tab

gt or :tabnext or :tabn # move to the next tab

gT or :tabprev or :tabp # move to the previous tab

<number>gt              # move to tab <number>

:tabmove <number>
# move current tab to the <number>th position (indexed from 0)

:tabclose or :tabc      # close the current tab and all its windows

:tabonly or :tabo       # close all tabs except for the current one

:tabdo command
# run the command on all tabs (e.g. :tabdo q - closes all opened tabs)

 

 

Laufzeiten von Zertifikaten

Zur Planung der Laufzeiten ist auch eine besondere Sorgfalt notwendig. Es ist sicherzustellen das zu keinem Zeitpunkt innerhalb einer zu definierenden Frist Stammzertifikate und X509 Zertifikate gleichzeitig ablaufen. Als Zeitraum sollten 30 Jahre nicht unterschritten werden.


Grafik: Aus PKIT Workshop

PKIT Root CA Parameter

Das Anlegen einer RootCA bedarf einiger Vorbereitung im Vorfeld.

Definieren Sie folgende Parameter:

Parameter

Beispiel

Info

BASEDN

C=DE/ST=Bavaria/L=Main Street 1, 12345 City/O=Certification Authority/OU=PKI Management

Adressdaten Ihrer RootCA

ROOTCN

PKITOOL Root CA

Eindeutiger Name Ihrer RootCA

BASEMAIL

mlpki@itconsulting-wolfinger.de

Kontaktadresse

ROOTBITS

4096

Länge der Schlüssel (RSA)

ROOTSHA

sha256

Hash Algorithmus der CA

CERTPOL

http://pki.itconsulting-wolfinger.de/policy/

Link zur CA Policy

CERTCEVPOL

http://pki.itconsulting-wolfinger.de/evpolicy/

Link zur "Erweiterten Policy"

ROOTCERTURI

http://pki.itconsulting-wolfinger.de/rootca.crt

Link zum Stammzertifikat der Zertifizierungstelle

ROOTOCSPURI

http://pki.itconsulting-wolfinger.de/ocsp

Nur wenn ein OCSP Dienst vorhanden ist, sollte diese URI eingetragen sein

ROOTCRLURI

http://pki.itconsulting-wolfinger.de/rootca.crl

Link zur "revocation-list"

POLICYIDENTIFIER

1.3.6.1.4.1.52823.1.2.2.1

Beschreibt die "PEN" Sicherheitsstandard der Schlüsselgenerierung

SERIALSTART

6

Anzahl der Bytes für Zufalls Serial-Start Nummer

ChallPassWD

   

CERTDAYS

1500

Gültigkeitsdauer der unterzeichneten Zertifikate.

CERTSHA

sha256

Hash Algorithmus für X509 Zertifikate

CRLSHA

sha256

Hash Algorithmus für Ablaufliste

CRLDAYS

185

Gültigkeitsdauer der Ablaufliste nach Aktualisierung (Revocation)

     

PKIT Anwender Kurz-Handbuch

Version 0.9

Anmerkung: Diese Anleitung wird von google automatisch in verschiedene Sprachen übersetzt. Das Ergebnis wird nicht perfekt sein, wir bitten um Verständnis.

PKIT steht für PKI-Tool. PKIT bietet umfangreiche Funktionen um eine PKI aufzubauen und zu verwalten. Im Vordergrund der gesamten Entwicklungszeit stand die möglichst einfache Bedienung und Opensource. PKIT ist komplett in Bash beschrieben.

PKIT einrichten

Zur komfortablen PKIT Anwendung wird die Installation mit Hilfe des GIT-Clients empfohlen. Selbstverständlich ist die Installation offline über das zip file ebenso einfach möglich. Diese beiden Wege werden im Folgenden erläutert.

Einrichtung über git

Voraussetzung ist das Vorliegen einer aktuelle Debian Installation. Wir empfehlen die kleine Debian Variante ohne grafische Oberfläche.

Schritte:

  1. Installieren Sie ,wenn notwendig, folgende Pakete:
    git, dos2unix, tree, zip und openssl

# apt-get update

# apt-get install git dos2unix tree zip openssl
# apt-get clean

  1. Legen Sie einen user "pki" an

# useradd -m -s /bin/bash pki
# passwd pki
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
#

  1. Wechseln Sie nun zum Benutzerkinto "pki"

# su – pki

  1. Clonen Sie das PKIT aus git

pki@debian: $ git clone https://github.com/KlausWolfinger/PKIT
pki@debian: $ cd PKIT
pki@debian: $ chmod u+x pki.sh

  1. Um den PKIT-Start zu vereinfachen erzeugen wir uns noch ein Kommando-Alias

pki@debian: $ echo 'alias pki=/home/PKIT/pki.sh' >>.bashrc
pki@debian: $ exit

  1. Damit wäre alles vorbereitet, nach Anmelden am System starten Sie das Kommando 'pki'

pki@debian: $ pki

##### PKIT CA MANAGEMENT #####

--- Project: SubCA Level 1 2.7b ---
------ Linux SYSTEM -------
Action Counter --> 1 <-- last action:
90 - CA Management
94 - Ext Candidate Management
95 - TLS/SSL Tools
96 - PKI Tool Management
97 - PKI Tool Config
h - Help
q - Quit or <CTRL>-c
--> pki@pkit-1 :

PKIT Destroy

Bevor Sie mit PKIT ihre Arbeit beginnen, wird eine Initialisierung empfohlen.

 

Damit wird alles (RootCA, Schlüssel und Zertifikate) gelöscht, jedoch die PKI Tool-Einstellungen nicht.

</p><h1>PKIT Cleanup

Das PKIT wurde initial für Schulungszwecke entwickelt. Dadurch stehen Optionen für Experimente zur Verfügung.
Anwendung: Sie haben verschiedene Zertifikate erzeugt, wollen aber gerne nochmals von vorne beginnen, jedoch ohne Ihre neue Stammzertifizierungsebene zu zerstören.

Abfolge:

 

Damit haben Sie folgendes gemacht:

  1. Reset der CA Datenbank
  2. Löschen aller Candidate Schlüsselpaare
  3. Löschen aller Candidate Zertifikate

 

Root CA erzeugen

Abfolge:



Candidates anlegen

Ein Candidate ist das Zielsystem für welches ein Zertifikat ausgestellt werden soll. Dies wird über Candidate-Management in einer Textdatei konfiguriert.

Abfolge


   

   Candidates Format

Achten Sie streng auf korrekte Syntax !
Die DNS und IP-Adressen sind optional (empfohlen), der ALIAS muss innerhalb dieser PKI Struktur eindeutig sein.

PKIT Kommandos

PKIT kennt interne Kommandos, diese werden mit einem "Doppelpunkt" : eingeleitet.

Beispiel

:h -- Zeigt die aktuelle Liste der Kommandos an

:ip a
:showrootca
:lastlog
:tree
:listvars

Ihr Feedback

Habe Sie Fragen zu PKIT? Gerne hier über die Kommentarfunktion dieser Website. Bitte beachten Sie, dass wir Kommentare erst nach inhaltlicher Prüfung freischalten, Löschung natürlich immer vorbehalten. Danke für Ihr Verständnis.

 

   

PKIT Erste Schritte

PKIT Dependencies

Linux based on Debian

IMPORTANT:

Use PKIT on Debian (-based-) systems only. We had lot of issues with SuSE or SLES. Check that all packets are uptodate.

Please understand that we will not support any requests if your openssl version is below 1.1.0.
Test your version with the command:

openssl version

Installation with git

Install git client

  1. apt-get install git

Dependencies:

  • dos2unix, zip/unzip, tree, openssl (version >1.0)
  • all packets and distro up-to-date

Clone the PKIT master branch

  1. clone the master

git clone https://github.com/KlausWolfinger/PKIT.git
cd PKIT

Set x flag

  1. chmod u+x pki.sh

Launch the PKIT

  1. ./pki.sh


 
 

Manual Installation

Download pkitool from git website:

https://github.com/KlausWolfinger/PKIT


  1. Click "Download ZIP"
  2. Copy the file to your Linux system
  3. unzip the pkitool archive
  4. chmod u+x pki.sh
  5. start tool wth ./plki.sh