Тестирование Kamailio и multidomain сертификата ssl
Как подключить к Камалио самоподписанный multidomain сертификат.
Как обычно источники: Статья 1, Статья 2
Смысл простой, я так понял это можно сделать добавив extensions в сертификат, а это в свою очередь определяется в файлике openssl.conf
Находим секцию REQ в openssl.conf проверяем, что x509_extensions не закомментирован:
[req] ... x509_extensions = v3_ca
Затем добавляем секцию v3_ca и указываем в ней следующее:
[v3_ca] ... subjectAltName = @alt_names [alt_names] DNS.1 = example.com DNS.2 = www.example.com DNS.3 = example.co.uk DNS.4 = www.example.co.uk
У меня сработало и сертификат стал иметь несколько доменных зон, что крайне удобно когда использует DNS файловер.
Проверить, кстати, можно очень просто после создания запроса на сертификат, выполните
openssl req -text -noout -in <запрос_сертификата>.csr
И если увидите, что-то подобное, то можно генерировать сертификат.
Certificate Request: Data: Version: 0 (0x0) Subject: C=DE, ST=Germany, L=City, O=Company, OU=Organisation-Unit, CN=server1.example.com/emailAddress=alias@example.com Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (4096 bit) Modulus (4096 bit): [...] Exponent: 65537 (0x10001) Attributes: Requested Extensions: X509v3 Basic Constraints: CA:FALSE X509v3 Key Usage: Digital Signature, Non Repudiation, Key Encipherment X509v3 Subject Alternative Name: DNS:server1.example.com, DNS:mail.example.com, DNS:www.example.com , DNS:www.sub.example.com, DNS:mx.example.com, DNS:support.example.com Signature Algorithm: sha1WithRSAEncryption [...]
значит всё удалось.
9.09.2012Новичкам в камалио
По умолчанию в kamailio.conf разрешены звонки с внешних доменов(поле FROM) на внутренний домен. Привести это может вот к чему, если у вас в дальнейшем Kamailio использует модуль DROUTING или както иначе вы маршрутизируетет звонки, то звонок предназначенный для локального пользователя (по затее разработчиков) может быть отправлен на внешний gateway.
Будьте внимательны!
# authenticate if from local subscriber
if (from_uri==myself)
{
if (!proxy_authorize(“$fd”, “subscriber”)) {
proxy_challenge(“$fd”, “0”);
exit;
}
if (is_method(“PUBLISH”))
{
if ($au!=$fU || $au!=$tU) {
sl_send_reply(“403″,”Forbidden auth ID”);
exit;
}
if ($au!=$rU) {
sl_send_reply(“403″,”Forbidden R-URI”);
exit;
}
#!ifdef WITH_MULTIDOMAIN
if ($fd!=$rd) {
sl_send_reply(“403″,”Forbidden R-URI domain”);
exit;
}
#!endif
} else {
if ($au!=$fU) {
sl_send_reply(“403″,”Forbidden auth ID”);
exit;
}
}
consume_credentials();
# caller authenticated
} else {
# caller is not local subscriber, then check if it calls
# a local destination, otherwise deny, not an open relay here
if (!uri==myself)
{
sl_send_reply(“403″,”Not relaying”);
exit;
}
Решение проблемы на мой взгляд в следующем, можно запретить входящие звонки вообще с IP кроме тех, кроме определенных, но грамотнее видимо будет, для “входящих” звонков не применять правило DROUTING.
| Posted in ssl\tls, Безопасность | No Comments »