Я работаю над несколькими сертификатами домена, используя stunnel. У меня есть два домена test.int и test1.int, и я дал несколько сертификатов для каждого домена и один сертификат по умолчанию. Я использовал опцию sni для stunnel, чтобы предоставить несколько сертификатов домена. Используя javascript websocket, я пытаюсь подключиться к безопасному серверу, но вывод файла журнала показывает
SNI: extension not received from the client
Поэтому я не уверен, поддерживает ли опция sni или нет. Может ли кто-нибудь помочь мне объяснить его работу или нет. Что означает выражение «SNI: расширение не получено от клиента».
Заранее благодарим за ценные ответы.
Мой файл stunnel.config
output=/var/log/stunnel.log
pid=
debug = 7
fips = no
compression = rle
options = NO_SSLv2
syslog = no
[websockets]
cert = /usr/local/etc/stunnel/default.crt
key = /usr/local/etc/stunnel/default.key
accept = 0.0.0.0:9443
connect = 127.0.0.1:9000
[sni1]
sni = websockets:mailxf.test.int
cert = /usr/local/etc/stunnel/test.int.crt
key = /usr/local/etc/stunnel/test.int.key
connect = 127.0.0.1:9000
[sni2]
sni = websockets:mailxf.test1.int
cert = /usr/local/etc/stunnel/test1.int.crt
key = /usr/local/etc/stunnel/test1.int.key
connect = 127.0.0.1:9000
Вывод файла журнала
Service [websockets] accepted (FD=9) from 192.168.0.132:38257
2014.04.14 18:30:32 LOG7[7085:139648669734672]: Service [websockets] started
2014.04.14 18:30:32 LOG5[7085:139648669734672]: Service [websockets] accepted connection from 192.168.0.132:38257
2014.04.14 18:30:32 LOG7[7085:139648669734672]: SSL state (accept): before/accept initialization
**2014.04.14 18:30:32 LOG5[7085:139648669734672]: SNI: extension not received from the client**
2014.04.14 18:30:32 LOG7[7085:139648669734672]: SSL state (accept): SSLv3 read client hello A
2014.04.14 18:30:32 LOG7[7085:139648669734672]: SSL state (accept): SSLv3 write server hello A
2014.04.14 18:30:32 LOG7[7085:139648669734672]: SSL state (accept): SSLv3 write change cipher spec A
2014.04.14 18:30:32 LOG7[7085:139648669734672]: SSL state (accept): SSLv3 write finished A
2014.04.14 18:30:32 LOG7[7085:139648669734672]: SSL state (accept): SSLv3 flush data
2014.04.14 18:30:32 LOG7[7085:139648669734672]: SSL state (accept): SSLv3 read finished A
2014.04.14 18:30:32 LOG7[7085:139648669734672]: 2 items in the session cache
2014.04.14 18:30:32 LOG7[7085:139648669734672]: 0 client connects (SSL_connect())
2014.04.14 18:30:32 LOG7[7085:139648669734672]: 0 client connects that finished
2014.04.14 18:30:32 LOG7[7085:139648669734672]: 0 client renegotiations requested
2014.04.14 18:30:32 LOG7[7085:139648669734672]: 19 server connects (SSL_accept())
2014.04.14 18:30:32 LOG7[7085:139648669734672]: 19 server connects that finished
2014.04.14 18:30:32 LOG7[7085:139648669734672]: 0 server renegotiations requested
2014.04.14 18:30:32 LOG7[7085:139648669734672]: 14 session cache hits
2014.04.14 18:30:32 LOG7[7085:139648669734672]: 0 external session cache hits
2014.04.14 18:30:32 LOG7[7085:139648669734672]: 0 session cache misses
2014.04.14 18:30:32 LOG7[7085:139648669734672]: 2 session cache timeouts
2014.04.14 18:30:32 LOG6[7085:139648669734672]: SSL accepted: previous session reused
2014.04.14 18:30:32 LOG6[7085:139648669734672]: connect_blocking: connecting 127.0.0.1:9000
2014.04.14 18:30:32 LOG7[7085:139648669734672]: connect_blocking: s_poll_wait 127.0.0.1:9000: waiting 10 seconds
2014.04.14 18:30:32 LOG5[7085:139648669734672]: connect_blocking: connected 127.0.0.1:9000
2014.04.14 18:30:32 LOG5[7085:139648669734672]: Service [websockets] connected remote server from 127.0.0.1:44325
2014.04.14 18:30:32 LOG7[7085:139648669734672]: Remote socket (FD=10) initialized
Код Javascript для подключения защищенного сервера,
wss://mailxf.test.int:9443/bo/socket.bo.php
Я использую версию веб-браузера как Chrome 26 и firefox 24 и версию ОС centos 6.
Вы пытались подключиться напрямую к IP-адресу, а не к имени хоста. Так что в SNI не было никакого смысла, поскольку вы не указали имя. Вы должны использовать имя хоста.
Например:
wss://example.com:9443/bo/socket.bo.php