Започваме със създаването на СА (Certificate Authority):
Отваряме OpenSSL и пишем:
openssl genrsa -aes256 -out ca.key 2048
Ще видите нещо подобно:
Generating RSA private key, 2048 bit long modulus
..............+++
...................................................................+++
e is 65537 (0x10001)
Enter pass phrase for ca.key:
Verifying - Enter pass phrase for ca.key:
Добре е да сложим парола на личният ключ – ако някой го докопа ще може да си вади колкото си иска сертификати с него.
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
Enter pass phrase for ca.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:BG
State or Province Name (full name) [Berkshire]:Pleven
Locality Name (eg, city) [Newbury]:Pleven
Organization Name (eg, company) [My Company Ltd]:domain.tld
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:domain.tld
Email Address []:
Common Name: – името на организацията, която ще притежава сертификата, не е нужно да е интернет адрес.
Следва да се създаде потебителският сертификат:
openssl genrsa -out voodoo.key 2048
Generating RSA private key, 2048 bit long modulus
.....................+++
..................................................................................+++
e is 65537 (0x10001)
openssl req -new -key voodoo.key -out voodoo.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:BG
State or Province Name (full name) [Berkshire]:Pleven
Locality Name (eg, city) [Newbury]:Pleven
Organization Name (eg, company) [My Company Ltd]:Ime
Organizational Unit Name (eg, section) []:Organisation
Common Name (eg, your name or your server's hostname) []:Ime Familia
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
openssl x509 -req -in voodoo.csr -out voodoo.crt -sha1 -CA voodoonet.crt -CAkey voodoonet.key -CAcreateserial -days 3650
Signature ok
subject=/C=BG/ST=Pleven/L=Pleven/O=Organisation/OU=Ime/CN=Ime Familia
Getting CA Private Key
Enter pass phrase for ca.key:
openssl pkcs12 -export -in todor.crt -inkey voodoo.key -name "Borislav Borisov - SSL Cert" -out voodoo.p12
Enter Export Password:
Verifying - Enter Export Password:
Паролата сложена тук се ползва при инсталацията на сертификата. Без нея не може да бъде импортнат в браузъра.
voodoo.p12 – е потребителският сертификат, който трябва да се импортне в браузъра на клиента.
За да ограничим достъпа до дадена директория от сайт слагаме това в .htaccess файла:
SSLVerifyClient require
SSLVerifyDepth 1
Или в на конфигурационния файл на Apache.
Но най-важното е да кажем на Apache, кои са “доверените” сертификати и как да ги познава.
За това трябва да се постави този ред в конфигурационният файл на Apache:
SSLCACertificateFile /ssl/ca/ca.crt
(естествено заменете пътя с вашия)
След рестартиране на Апача всичко би трябвало да работи.
-------------------------------------------------------------
Ако ползвате версия на Apache2 за Windows въведете следната команда в OpenSSL:
openssl rsa -in .key -out .key
Въведете паролата на ключа!
Това е пример как се създават
rsa.key, и публичен ключ rsa.pub
Отваряме OpenSSL и пишем:
openssl genrsa -out rsa.key 2048
openssl rsa -in rsa.key -pubout -out rsa.pub
chown . rsa.key rsa.pub
chmod 0600 rsa.key
chmod 0644 rsa.pub
Намерете в ircd.conf
rsa_private_key_file = "/usr/local/ircd/etc/rsa.key";
и задайте правилния път до файла.
И накрая:
openssl req -new -days 3650 -x509 -key rsa.key -out cert.pem