Ahhoz, hogy minden zökkenőmentesen menjen a következő lépéseket kell elvégezni.
1. Amennyiben nem rendelkeznénk az OpenSSL csomaggal, úgy azt a következő paranccsal telepíthetjük fel:
sudo apt install openssl
1.1 Mappa létrehozása a openssl-nek.
Tetszőleges nevet is adhatunk neki, illetve teljesen opcionális.
mkdir openssl && cd openssl
2. A RootCA létrehozása (.key és .cert)
A napot meg lehet emelni tetszőlegesre. Itt 1 évre szól a RootCA. Lehet 1068 vagy 716 is. Én általában 2 évre csinálom.
A subj-nél megfelelő adatokat adjunk be. CN = common name (aláíró). C = country. L = Locality
Jelen esetben mint CA-ként járunk el. Ez ugye nem egy globálisan elismert tanúsítványt lesz.
openssl req -x509 \
-sha256 -days 356 \
-nodes \
-newkey rsa:2048 \
-subj "/CN=feketebt.net/C=HU/L=Budapest" \
-keyout rootCA.key -out rootCA.crt
Terminálba a következő output fog megjelenni
openssl req -x509 \
-sha256 -days 356 \
-nodes \
-newkey rsa:2048 \
-subj "/CN=feketebt.net/C=HU/L=Budapest" \
-keyout rootCA.key -out rootCA.crt
.+.......+............+..+...............+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*..+......+...+...+......................+...+..+...+.........+...+.+..+.......+.....................+.....+.+.....+.+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*..+...+.........+......+..........+.....+....+..+......+....+.....+.+....................+....+........+.+..+...+.+......+..+.+............+..+......+..........+......+......+..+......+.+...+...+...+..+...+.......+............+..+...+..........+......+......+........+............+...+...+.........+.........+......+.+.....+...+......+.+.................+.+..+...+..........+..+....+......+...+......+.....+.........+......+...+............+.+..............+....+...........+...+.+.........+........+.............+......+......+.........+......+........+....+..+....+..+...+..........+..............+.+.....+.......+..+.......+.....+.+...+......+........+...+...............+...+....+......+.........+..+.+..+............+......+..........+..............+...+.......+...........+..........+........+...............+......+.+..+...+....+.........+......+......+.....+.......+.....+......+......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
.....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*...........+......+........+......+.+............+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.+............+......+.......+..+.+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-----
ls -la
drwxrwxr-x 2 feketebt feketebt 4096 szept 27 08:13 .
drwxr-x--- 23 feketebt feketebt 4096 szept 27 08:06 ..
-rw-rw-r-- 1 feketebt feketebt 1208 szept 27 08:13 rootCA.crt
-rw------- 1 feketebt feketebt 1704 szept 27 08:13 rootCA.key
3. Server privát kulcs létrehozása. Adhatunk neki tetszőleges nevet akár. Output-ja a server.key fájl lesz.
openssl genrsa -out server.key 2048
4. A csr.conf fájl létrehozása
Ez csupán az egyszerűség kedvéért történik. Megfelelő adatokkal kell feltölteni. Akár nano vagy vim-mel is létrehozhatjuk külön.
Magyarázat a tanúsítvány lánchoz: CN = CommonName, OU = OrganizationalUnit, O = Organization, L = Locality, S = StateOrProvinceName, C = CountryName
cat > csr.conf <<EOF
[ req ]
default_bits = 2048
prompt = no
default_md = sha256
req_extensions = req_ext
distinguished_name = dn
[ dn ]
C = HU
ST = Budapest
L = Budapest
O = feketebt
OU = feketebt
CN = feketebt.net
[ req_ext ]
subjectAltName = @alt_names
[ alt_names ]
DNS.1 = feketebt.net (Megfelelő DNS név. Routeren statikus bejegzsést kell felvenni rá.)
IP.1 = 192.168.2.16 (Megfelelő IP-cím)
EOF
5. CSR (Certificate Signing Request) készítése a szerver privát kulcsával.
Ha egyedi neveket adtunk neki, akkor megfelelő neveket írjunk be. Output-ja a server.csr lesz
openssl req -new -key server.key -out server.csr -config csr.conf
6. A cert.conf létrehozása
Szintén csak a kényelmünket szolgálja.
cat > cert.conf <<EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = feketebt.net (Megfelelő DNS név. Routeren statikus bejegzsést kell felvenni rá.)
IP.1 = 192.168.2.16 (Megfelelő IP-cím)
EOF
7. SSL certificate készítése self signed CA-val.
Gyakorlatilag eddig csak az előkészítéseket csináltuk meg előre. A napot itt is átírhatjuk.
openssl x509 -req \
-in server.csr \
-CA rootCA.crt -CAkey rootCA.key \
-CAcreateserial -out server.crt \
-days 365 \
-sha256 -extfile cert.conf
Terminálba a következő output fog megjelenni
openssl x509 -req \
-in server.csr \
-CA rootCA.crt -CAkey rootCA.key \
-CAcreateserial -out server.crt \
-days 365 \
-sha256 -extfile cert.conf
Certificate request self-signature ok
subject=C = HU, ST = Budapest, L = Budapest, O = feketebt, OU = feketebt, CN = feketebt.net
Így kapjuk meg végül a server.crt-t és server.key-t. Ezt kell importálnunk a megfelelő helyre.