Difference between revisions of "Certificates"
(Created page with "== openssl == Генериране на ключ: == Създаване на сертифицираща организация == Certificate Authority - организац...") |
|||
(One intermediate revision by the same user not shown) | |||
Line 76: | Line 76: | ||
-sha256 -new -key private/student.tugab.bg.key.pem \ | -sha256 -new -key private/student.tugab.bg.key.pem \ | ||
-out certs/student.tugab.bg.csr.pem | -out certs/student.tugab.bg.csr.pem | ||
+ | |||
+ | |||
+ | ili | ||
+ | openssl req -newkey rsa:2048 -keyout private/domain1.tugab.key -out certs/domain1.tugab.csr -config ./openssl.cnf | ||
+ | |||
===Подписване на искането за подпис=== | ===Подписване на искането за подпис=== | ||
Line 104: | Line 109: | ||
+ | |||
+ | |||
+ | ==Generate Server Certificate Commands== | ||
+ | |||
+ | *Достъп до сървъра | ||
+ | ssh hq@ca-in-hq.stemo.local | ||
+ | |||
+ | *роот потребител и папка със конфигурацията | ||
+ | su | ||
+ | cd /root/ca | ||
+ | |||
+ | *Дефиниране FQDN | ||
+ | FQDN=xxx.stemo.local | ||
+ | |||
+ | *Генериране на ключ. Ключа е без парола. Дължина 4096 бит-а. | ||
+ | openssl genrsa -out private/$FQDN.key.pem 4096 | ||
+ | chmod 400 private/$FQDN.key.pem | ||
+ | |||
+ | *Генериране на рекуест. Оставят се стойностите по подразбиране, С изключение на FQDN, което е името за което ще бъде издаден сертификата. Location е опционално... | ||
+ | openssl req -config openssl.cnf -sha256 -new -key private/$FQDN.key.pem -out csr/$FQDN.csr.pem | ||
+ | chmod 444 csr/$FQDN.csr.pem | ||
+ | |||
+ | *Генериране на сертификат. Валидност 3000 дена. | ||
+ | openssl ca -config openssl.cnf -extensions server_cert -days 3000 -notext -md sha256 -in csr/$FQDN.csr.pem -out certs/$FQDN.cert.pem | ||
+ | |||
+ | *Записване на сертификата и ключа във формат удобен за импорт в Windows | ||
+ | openssl pkcs12 -export -out $FQDN.pfx \ | ||
+ | -inkey private/$FQDN.key.pem \ | ||
+ | -in certs/$FQDN.cert.pem | ||
+ | |||
+ | *копиране за да могат да бъдат изтеглени през sftp клиент | ||
+ | cp /root/ca/certs/$FQDN.cert.pem /home/?? hq ili sf | ||
+ | cp /root/ca/private/$FQDN.key.pem /home/?? | ||
+ | mv $FQDN.pfx /home/?? | ||
+ | |||
+ | == Commands == | ||
+ | |||
+ | *Отваряне на сертификат | ||
+ | openssl x509 -noout -text -in certs/ca.cert.pem | ||
+ | |||
+ | *Проверка на сертификат | ||
+ | openssl verify -CAfile certs/ca.cert.pem intermediate/certs/intermediate.cert.pem | ||
+ | |||
+ | *Създаване на частен ключ | ||
+ | openssl genrsa -out intermediate/private/t19201.stemo.test.key.pem 4096 | ||
+ | |||
+ | *Генериране на pfx (сертификат + ключ с парола) | ||
+ | openssl pkcs12 -export -out t19201.pfx \ | ||
+ | -inkey intermediate/private/t19201.stemo.test.key.pem \ | ||
+ | -in intermediate/certs/t19201.stemo.test.cert.pem | ||
+ | |||
+ | |||
+ | == Revocation List == | ||
+ | |||
+ | *Генериране | ||
+ | openssl ca -config openssl.cnf -gencrl -out crl/ca-in-sf.stemo.local.crl.pem | ||
+ | |||
+ | |||
+ | *Проверка | ||
+ | openssl crl -in ca-in-sf.stemo.local.crl.pem -noout -text | ||
+ | |||
+ | |||
+ | Публикува се на http://crl.stemo.local/ca-in-sf.stemo.local.crl.pem | ||
+ | |||
+ | Публикува се на http://crl.stemo.local/ca-in-hq.stemo.local.crl.pem | ||
+ | |||
+ | |||
+ | https://jamielinux.com/articles/2013/08/act-as-your-own-certificate-authority/ | ||
+ | |||
+ | https://jamielinux.com/articles/2013/08/generate-certificate-revocation-list-revoke-certificates/ | ||
+ | |||
+ | https://jamielinux.com/articles/2013/08/create-an-intermediate-certificate-authority/ | ||
Line 119: | Line 196: | ||
openssl genrsa -out privkey.pem 2048 | openssl genrsa -out privkey.pem 2048 | ||
+ | |||
+ | < | ||
[[Category:Мрежова сигурност]] | [[Category:Мрежова сигурност]] |
Latest revision as of 09:00, 17 June 2019
Contents
openssl
Генериране на ключ:
Създаване на сертифицираща организация
Certificate Authority - организация, която издава цифрови сертификати
Създаване на директорийна структура
mkdir CA cd CA mkdir certs crl newcerts private chmod 700 private touch index.txt echo 1000 > serial
index.txt, serial - списък на сертификатите
Настройки
cp /etc/ssl/openssl.cnf ./ nano openssl.cnf
В openssl.conf за [ CA_default ] трябва да се настрои пътят към директорията CA Примерно dir=/home/mrezhi/CA
[ CA_default ] dir=/home/mrezhi/CA
[ usr_cert ] # These extensions are added when 'ca' signs a request. basicConstraints=CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment nsComment = "OpenSSL Generated Certificate" subjectKeyIdentifier=hash authorityKeyIdentifier=keyid,issuer
[ v3_ca ] # Extensions for a typical CA subjectKeyIdentifier=hash authorityKeyIdentifier=keyid:always,issuer basicConstraints = CA:true keyUsage = cRLSign, keyCertSign ... [ policy_match ] countryName = match stateOrProvinceName = supplied organizationName = supplied organizationalUnitName = optional commonName = supplied emailAddress = optional
Генериране на частен ключ
openssl genrsa -aes256 -out private/ca.key.pem 4096
aes256 - криптира частния ключ
Генериране на сертификат за CA
openssl req -config openssl.cnf \ -new -x509 -days 3650 \ -key private/ca.key.pem \ -sha256 -extensions v3_ca \ -out certs/ca.cert.pem
Файлът е само за четене
chmod 444 certs/ca.cert.pem
Генериране и подписване на сертификати
частен ключ
openssl genrsa -out private/student.tugab.bg.key.pem 4096 chmod 400 student.tugab.bg.key.pem
Искане за подпис
openssl req -config openssl.cnf \ -sha256 -new -key private/student.tugab.bg.key.pem \ -out certs/student.tugab.bg.csr.pem
ili
openssl req -newkey rsa:2048 -keyout private/domain1.tugab.key -out certs/domain1.tugab.csr -config ./openssl.cnf
Подписване на искането за подпис
openssl ca -config openssl.cnf \ -keyfile private/ca.key.pem \ -cert certs/ca.cert.pem \ -extensions usr_cert -notext -md sha256 \ -in certs/student.tugab.bg.csr.pem \ -out certs/student.tugab.bg.cert.pem
Конфигуриране на web server
- Импортиране виртуална машина с Линукс\Дебиан
- копиране на двойката ключове на хостинг машината (може да се използва fileZilla
- инсталиране на apache2
apt-get install apache2
- активиране на ssl модула
a2enmod ssl
- актвиране на https
- nano /etc/apache2/ports.conf
- cp /etc/apache2/sites-available/default-ssl /etc/apache2/sites-enabled
- nano /etc/apache2/sites-enabled/default-ssl , да се настроят пътищата към сертификатите
Браузър
Да се добави генерираният root сертификат към вградените сертификати.
Generate Server Certificate Commands
- Достъп до сървъра
ssh hq@ca-in-hq.stemo.local
- роот потребител и папка със конфигурацията
su cd /root/ca
- Дефиниране FQDN
FQDN=xxx.stemo.local
- Генериране на ключ. Ключа е без парола. Дължина 4096 бит-а.
openssl genrsa -out private/$FQDN.key.pem 4096 chmod 400 private/$FQDN.key.pem
- Генериране на рекуест. Оставят се стойностите по подразбиране, С изключение на FQDN, което е името за което ще бъде издаден сертификата. Location е опционално...
openssl req -config openssl.cnf -sha256 -new -key private/$FQDN.key.pem -out csr/$FQDN.csr.pem chmod 444 csr/$FQDN.csr.pem
- Генериране на сертификат. Валидност 3000 дена.
openssl ca -config openssl.cnf -extensions server_cert -days 3000 -notext -md sha256 -in csr/$FQDN.csr.pem -out certs/$FQDN.cert.pem
- Записване на сертификата и ключа във формат удобен за импорт в Windows
openssl pkcs12 -export -out $FQDN.pfx \ -inkey private/$FQDN.key.pem \ -in certs/$FQDN.cert.pem
- копиране за да могат да бъдат изтеглени през sftp клиент
cp /root/ca/certs/$FQDN.cert.pem /home/?? hq ili sf cp /root/ca/private/$FQDN.key.pem /home/?? mv $FQDN.pfx /home/??
Commands
- Отваряне на сертификат
openssl x509 -noout -text -in certs/ca.cert.pem
- Проверка на сертификат
openssl verify -CAfile certs/ca.cert.pem intermediate/certs/intermediate.cert.pem
- Създаване на частен ключ
openssl genrsa -out intermediate/private/t19201.stemo.test.key.pem 4096
- Генериране на pfx (сертификат + ключ с парола)
openssl pkcs12 -export -out t19201.pfx \ -inkey intermediate/private/t19201.stemo.test.key.pem \ -in intermediate/certs/t19201.stemo.test.cert.pem
Revocation List
- Генериране
openssl ca -config openssl.cnf -gencrl -out crl/ca-in-sf.stemo.local.crl.pem
- Проверка
openssl crl -in ca-in-sf.stemo.local.crl.pem -noout -text
Публикува се на http://crl.stemo.local/ca-in-sf.stemo.local.crl.pem
Публикува се на http://crl.stemo.local/ca-in-hq.stemo.local.crl.pem
https://jamielinux.com/articles/2013/08/act-as-your-own-certificate-authority/
https://jamielinux.com/articles/2013/08/generate-certificate-revocation-list-revoke-certificates/
https://jamielinux.com/articles/2013/08/create-an-intermediate-certificate-authority/
https://jamielinux.com/articles/2013/08/act-as-your-own-certificate-authority/
https://jamielinux.com/articles/2013/08/generate-certificate-revocation-list-revoke-certificates/
https://jamielinux.com/articles/2013/08/create-an-intermediate-certificate-authority/
openssl genrsa -out privkey.pem 2048
<