Конфигурация сервера:
port 1194
proto udp
dev tun
keepalive 10 120
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status /var/log/openvpn/team.log
syslog vpn-team
verb 4
writepid /var/run/openvpn-team.pid
ca /etc/openvpn/ca.crt
cert /etc/openvpn/team/server.crt
key /etc/openvpn/team/server.key # This file should be kept secret
dh /etc/openvpn/dh.pem
server 172.16.255.128 255.255.255.128
ifconfig-pool-persist /etc/openvpn/team/ipp.txt
client-to-client
push "route 172.16.0.0 255.255.254.0"
crl-verify crl.pem
конфигурация клиента:
dev tun
proto udp
resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun
comp-lzo
verb 4
client
remote x.x.x.x 1194
ca ca.crt
cert team.crt
key team.key
remote-cert-tls server
С помощью revoke-full
сценарий из easy-rsa
пакет, я видел, что он выводит только последний в crl.pem
файл:
# generate a new CRL -- try to be compatible with
# intermediate PKIs
$OPENSSL ca -gencrl -out "$CRL" -config "$KEY_CONFIG"
В моем случае я написал сценарий для добавления к этому файлу, но только первый получил отказ, все остальные могут подключиться.
С помощью openssl crl
, он просто показывает серийный номер первого:
Revoked Certificates:
Serial Number: E9955907C7F48BDDFCADCFECFAEDC8B7
Revocation Date: Feb 11 08:57:19 2015 GMT
Итак, вопрос: есть ли crl-verify
поддерживать составной файл CRL? Это предел openssl?
Связанный:
Итак, вопрос: есть ли
crl-verify
поддерживать составной файл CRL?
Нет. crl.pem
это примерно так:
-----BEGIN X509 CRL-----
MIICAzCB7DANBgkqhkiG9w0BAQQFADCBlTELMAkGA1UEBhMCVVMxEzARBgNVBAgT
CkNhbGlmb3JuaWExFTATBgNVBAcTDFJlZHdvb2QgQ2l0eTESMBAGA1UEChMJUnVu
d2F5IDIwMREwDwYDVQQLEwhEZXYgVGVhbTETMBEGA1UEAxMKb3BlbnZwbi1jYTEe
MBwGCSqGSIb3DQEJARYPaW5mb0BydW53YXkuY29tFw0xNTAyMTMwNjAwMzJaFw0x
NTA1MjQwNjAwMzJaMCUwIwIQUp+UnftT7IKiLOnT/6OachgPMjAxNTAyMTMxMzAw
1tYZj9iJzdzOsRbcK10FrwswLJ8ZNKWvLHfiqOVr7JakxCM3e8uVuMwtkEugHnmB
HjtU39ero7j3AUZZHETQaMnJvnQAMqcy+RKCDWDuxzBWr5vxkY85AatQmz2SfNAi
5F93UXQyegXpQohmkQaq7mSDbpeO163G5n9MqOGdG2fIYYOQSkgl+h2/hx/+9+jC
8y491cg/evAWerSVFVrzaA1T5dmhSBX6Awb9RnxDvo8ZlJufjOqhxMwU8J19RYOj
M2Rk9JQ5Wvgq4Q+3qM0uEhHVFfSaAUvGqTHJwqtgPR23x7F00jNB
-----END X509 CRL-----
но используя openssl crl -in /path/to/crl.pem -text -noout
, если несколько сертификатов были отозваны, вы увидите что-то вроде этого:
Revoked Certificates:
Serial Number: 01
Revocation Date: Feb 13 14:59:08 2015 GMT
Serial Number: 02
Revocation Date: Feb 13 14:59:10 2015 GMT
Я написал сценарий для добавления в этот файл, но только первый получил отказ, все остальные могут подключиться.
Я ошибся на этом шаге. Прочтите revoke-full
скрипт внимательно:
# revoke key and generate a new CRL
$OPENSSL ca -revoke "$1.crt" -config "$KEY_CONFIG"
# generate a new CRL -- try to be compatible with
# intermediate PKIs
$OPENSSL ca -gencrl -out "$CRL" -config "$KEY_CONFIG"
OpenSSL имеет index.txt
файл, в котором хранится вся информация о сертификате:
Первая команда (openssl ca -revoke
) фактически обновить это index.txt
файл для замены V (действительный) на R (отозвать). Вторая команда (openssl ca -gencrl
) создать crl.pem
файл на основе index.txt
и сертификат / ключ CA.
Итак, не добавляйте к существующим crl.pem
файл, просто обновите index.txt
сначала, затем повторно сгенерируйте CRL.