User Tools

Site Tools


пакет_openssl

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
пакет_openssl [2024/02/22 10:59]
val [Настройка атрибутов базы CA в конфигурации ssl]
пакет_openssl [2024/05/04 05:20] (current)
val [Отзыв сертификатов]
Line 16: Line 16:
 <​code>​ <​code>​
 $ openssl s_client -connect ru.wikipedia.org:​443 $ openssl s_client -connect ru.wikipedia.org:​443
- 
-$ openssl s_client -CApath /​etc/​ssl/​certs/​ -showcerts -connect student.bmstu.ru:​443 
  
 $ openssl s_client -showcerts -connect webinar6.bmstu.ru:​443 2>/​dev/​null | openssl x509 -noout -dates #-text | grep bmstu $ openssl s_client -showcerts -connect webinar6.bmstu.ru:​443 2>/​dev/​null | openssl x509 -noout -dates #-text | grep bmstu
Line 23: Line 21:
 $ faketime -f "​+500d"​ wget -q -O /dev/null https://​webinar7.bmstu.ru && echo Ok || echo Err $ faketime -f "​+500d"​ wget -q -O /dev/null https://​webinar7.bmstu.ru && echo Ok || echo Err
  
-$ openssl s_client ​-CApath /​etc/​ssl/​certs/ ​-starttls smtp -crlf -connect mailhub.bmstu.ru:​25+$ openssl s_client -starttls smtp -crlf -connect mailhub.bmstu.ru:​25
  
-openssl s_client -cert user1.crt -key user1.key -connect www.corpX.un:​443+lan# openssl s_client -cert user1.crt -key user1.key -connect www.corpX.un:​443
 </​code><​code>​ </​code><​code>​
 GET /​cgi-bin/​test-cgi HTTP/1.1 GET /​cgi-bin/​test-cgi HTTP/1.1
 Host: www.corpX.un Host: www.corpX.un
 </​code><​code>​ </​code><​code>​
-openssl s_client -cert user1.crt -key user1.key -connect server.corpX.un:​993+lan# openssl s_client -cert user1.crt -key user1.key -connect server.corpX.un:​993
 </​code><​code>​ </​code><​code>​
 01 AUTHENTICATE EXTERNAL = 01 AUTHENTICATE EXTERNAL =
Line 46: Line 44:
 ==== Создание пары приватный/​публичный ключ ==== ==== Создание пары приватный/​публичный ключ ====
 <​code>​ <​code>​
 +student@lan:​~$
 user1@server:​~$ openssl genrsa 2048 > key.private user1@server:​~$ openssl genrsa 2048 > key.private
  
Line 51: Line 50:
  
 user1@server:​~$ scp key.public user2@www: user1@server:​~$ scp key.public user2@www:
 +student@lan:​~$ ftp-upload -h server -u student --password xxxxxxxx -v key.public
 </​code>​ </​code>​
  
 +  * [[Сервис FTP#​Команды ftp клиента]]
 ==== Шифрование данных ==== ==== Шифрование данных ====
 <​code>​ <​code>​
 +student@server:​~$ openssl pkeyutl -encrypt -inkey key.public -pubin < data.txt > data.enc
 user2@www:​~$ openssl rsautl -encrypt -inkey key.public -pubin < data.txt > data.enc user2@www:​~$ openssl rsautl -encrypt -inkey key.public -pubin < data.txt > data.enc
  
 user2@www:​~$ scp data.enc user1@server:​ user2@www:​~$ scp data.enc user1@server:​
 +student@lan:​~$ curl -v -o data.enc ftp://​student:​xxxxxxxx@server/​data.enc
  
 +student@lan:​~$ openssl pkeyutl -decrypt -inkey key.private < data.enc | tee data.txt
 user1@server:​~$ openssl rsautl -decrypt -inkey key.private < data.enc > data.txt user1@server:​~$ openssl rsautl -decrypt -inkey key.private < data.enc > data.txt
 </​code>​ </​code>​
Line 64: Line 68:
 ==== Цифровая подпись ==== ==== Цифровая подпись ====
 <​code>​ <​code>​
 +student@lan:​~$
 user1@server:​~$ openssl dgst -sha256 -sign key.private -out data.sign data.txt user1@server:​~$ openssl dgst -sha256 -sign key.private -out data.sign data.txt
  
 user1@server:​~$ scp data.* user2@www: user1@server:​~$ scp data.* user2@www:
 +student@lan:​~$ ftp-upload -h server -u student --password password -v data*
  
 +student@server:​~$
 user2@www:​~$ openssl dgst -sha256 -verify key.public -signature data.sign data.txt user2@www:​~$ openssl dgst -sha256 -verify key.public -signature data.sign data.txt
 </​code>​ </​code>​
Line 79: Line 86:
 ===== Создание самоподписанного сертификата ===== ===== Создание самоподписанного сертификата =====
  
 +  * *.corpX.un для wild card сертификата
 ==== Создание приватного ключа ==== ==== Создание приватного ключа ====
 <​code>​ <​code>​
 server# openssl genrsa -out server.key 2048 server# openssl genrsa -out server.key 2048
  
-server# chmod 400 server.key+server# ###chmod 400 server.key
 </​code>​ </​code>​
  
 ==== Создание сертификата ==== ==== Создание сертификата ====
 <​code>​ <​code>​
-server# openssl req -new -x509 -days 3650 -key server.key -out server.crt -addext ​"subjectAltName=DNS:​server.corpX.un"+server# openssl req -new -x509 -days 3650 -key server.key -out server.crt -addext ​'subjectAltName=DNS:​server.corpX.un'
 </​code><​code>​ </​code><​code>​
 ... ...
Line 100: Line 108:
 </​code>​ </​code>​
  
 +ИЛИ
 +
 +<​code>​
 +openssl req -new -x509 -days 3650 -key wild.key -out wild.crt -subj '/​CN=*.corpX.un/​O=CKO/​C=RU'​ -addext '​subjectAltName=DNS:​*.corpX.un'​
 +</​code>​
 ==== Просмотр содержимого файла сертификата ==== ==== Просмотр содержимого файла сертификата ====
 <​code>​ <​code>​
Line 124: Line 137:
 ==== Debian ==== ==== Debian ====
 <​code>​ <​code>​
 +# wget http://​lan.corpX.un/​ca.crt
 +
 +# cp ca.crt /​usr/​local/​share/​ca-certificates/​
 +
 server# cp corpX-PDC-CA.crt /​usr/​local/​share/​ca-certificates/​ server# cp corpX-PDC-CA.crt /​usr/​local/​share/​ca-certificates/​
  
Line 138: Line 155:
  
 # wget -O - https://​www.corpX.un # wget -O - https://​www.corpX.un
 +</​code>​
 +
 +==== CentOS/​AlmaLinux ====
 +<​code>​
 +# yum install ca-certificates
 +
 +# update-ca-trust force-enable
 +
 +# wget http://​lan.corp13.un/​ca.crt
 +
 +# cp ca.crt /​etc/​pki/​ca-trust/​source/​anchors/​
 +
 +# update-ca-trust extract
 +
 +# wget -O - https://​www.corp13.un
 </​code>​ </​code>​
  
Line 163: Line 195:
  
 ==== Настройка атрибутов базы CA в конфигурации ssl ==== ==== Настройка атрибутов базы CA в конфигурации ssl ====
 +
 +  * [[https://​unix.stackexchange.com/​questions/​313216/​openssl-sign-requests-with-extensions|OpenSSL sign requests with extensions]]
 +
 <​code>​ <​code>​
 lan# cat /​etc/​ssl/​openssl.cnf lan# cat /​etc/​ssl/​openssl.cnf
Line 170: Line 205:
  
 dir           = /root/CA dir           = /root/CA
- 
 ... ...
 +#​unique_subject = no 
 +... 
 +copy_extensions = copy 
 +...
 certificate ​  = /​var/​www/​html/​ca.crt certificate ​  = /​var/​www/​html/​ca.crt
- 
 crl           = /​var/​www/​html/​ca.crl crl           = /​var/​www/​html/​ca.crl
- 
 private_key ​  = $dir/ca.key private_key ​  = $dir/ca.key
  
Line 183: Line 218:
 </​code><​code>​ </​code><​code>​
 cd cd
 +mkdir -p /​var/​www/​html/​
 mkdir CA mkdir CA
 mkdir CA/certs mkdir CA/certs
Line 244: Line 280:
 ==== Создание запроса на сертификат ==== ==== Создание запроса на сертификат ====
  
-  * *.corpX.un для ​Wildcard ​сертификата+  * *.corpX.un для ​wild card сертификата
  
 <​code>​ <​code>​
Line 343: Line 379:
 ==== Создание запроса на сертификат ==== ==== Создание запроса на сертификат ====
 <​code>​ <​code>​
-$ openssl req -new -key user1.key -out user1.req+$ openssl req -new -key user1.key -out user1.req ​#-sha256
 ... ...
 Organizational Unit Name (eg, section) [noc]:​group1 Organizational Unit Name (eg, section) [noc]:​group1
Line 366: Line 402:
 <​code>​ <​code>​
 $ openssl pkcs12 -export -in user1.crt -inkey user1.key -out user1.p12 -passout pass:​ppassword1 $ openssl pkcs12 -export -in user1.crt -inkey user1.key -out user1.p12 -passout pass:​ppassword1
 +openssl3# openssl pkcs12 -legacy -export -in user1.crt -inkey user1.key -out user1.p12 -passout pass:​ppassword1
  
 $ openssl pkcs12 -info -in user1.p12 $ openssl pkcs12 -info -in user1.p12
Line 379: Line 416:
  
 lan# openssl ca -gencrl -out /​var/​www/​html/​ca.crl lan# openssl ca -gencrl -out /​var/​www/​html/​ca.crl
 +
 +lan# openssl crl -text -noout -in /​var/​www/​html/​ca.crl | less
 +...
 +    Serial Number: 0M
 +...
 +    Serial Number: 0N
 +...
 </​code>​ </​code>​
пакет_openssl.1708588741.txt.gz · Last modified: 2024/02/22 10:59 by val