Javax.net.ssl.SSLException: сертификат не соответствует ни одному из альтернативных имен субъектаJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Javax.net.ssl.SSLException: сертификат не соответствует ни одному из альтернативных имен субъекта

Сообщение Anonymous »

Недавно я добавил сертификаты LetsEncrypt на свой сервер, и у моего Java-апплета возникают проблемы с подключением по TLS.

Мой апплет использует Apache HttpClient.

Мой веб-сервер — Apache 2,4, и у меня есть несколько виртуальных хостов, настроенных как поддомены моего основного домена (foo.com — не мой настоящий домен). name).

Когда я запускаю свой апплет на промежуточном поддомене (например, он запускается с https://staging.foo.com), я получаю следующую ошибку:

Код: Выделить всё

javax.net.ssl.SSLException: Certificate for  doesn't match any of the subject alternative names: [developer.foo.com]
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:165)
at org.apache.http.conn.ssl.BrowserCompatHostnameVerifier.verify(BrowserCompatHostnameVerifier.java:61)
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:141)
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:114)
at org.apache.http.conn.ssl.SSLSocketFactory.verifyHostname(SSLSocketFactory.java:580)
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:554)
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:412)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:179)
at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:328)
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:612)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:447)
at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:884)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107)
...(cut)
at javax.swing.SwingWorker$1.call(SwingWorker.java:295)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at javax.swing.SwingWorker.run(SwingWorker.java:334)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Я понятия не имею, что происходит.

Во-первых, я понятия не имею, откуда Java узнает, что Developer.foo.bar является одним из моих виртуальных хостов (хотя этот виртуальный хост является первым в алфавитном порядке, на котором включен SSL).

Я просмотрел сведения о сертификате для staging.foo.com, и единственное имя, указанное в поле «Альтернативное имя субъекта», — staging.foo.com.

Итак, откуда он берет Developer.foo.com?

И как мне решить эту проблему?

Я использую Firefox в OS X El Capitan 10.11.6 со следующей Java информация о версии плагина:

Код: Выделить всё

Java Plug-in 11.102.2.14 x86_64
Using JRE version 1.8.0_102-b14 Java HotSpot(TM) 64-Bit Server VM
Это файл конфигурации Apache для staging.foo.com:

Код: Выделить всё


ServerName staging.foo.com
ServerAlias www.staging.foo.com

# Turn on HTTP Strict Transport Security (HSTS). This tells the
# client that it should only communicate with this site using
# HTTPS. See
# https://raymii.org/s/tutorials/HTTP_Strict_Transport_Security_for_Apache_NGINX_and_Lighttpd.html
Header always set Strict-Transport-Security "max-age=31536000; includeSubdomains;"

# The following is used to tunnel websocket requests to daphne, so
# that Django Channels can do its thing
ProxyPass "/ws/" "ws://localhost:8001/ws/"
ProxyPassReverse "/ws/" "ws://localhost:8001/ws/"

# The following is used during deployment. Every page request is
# served from one static html file.
RewriteEngine       on
RewriteCond         /home/www-mm/staging.foo.com/apache/in_maintenance -f
RewriteRule .*      /home/www-mm/staging.foo.com/static/maintenance/maintenance.html

# Use Apache to serve protected (non-static) files.  This is so that
# Apache can deal with ranges
XSendFile on
XSendFilePath /home/www-mm/staging.foo.com/user_assets

# Limit uploads - 200MB
LimitRequestBody 209715200

Alias /static/ /home/www-mm/staging.foo.com/serve_static/
Alias /robots.txt /home/www-mm/staging.foo.com/apache/serve-at-root/robots.txt


AddOutputFilterByType DEFLATE text/html text/css text/javascript application/javascript application/json
Order deny,allow
Require all granted


# Videos uploaded via staff to home page should never cache,
# because they can change at any time (and we don't know if the
# URLs will change or not). Etags are used and only headers are
# sent if the files in question aren't modified (we get a 304
# back)

ExpiresActive On
# Expire immediately
ExpiresDefault A0


# The following ensures that the maintenance page is never cached.

ExpiresActive On
# Expire immediately
ExpiresDefault A0
Require all granted


# Hide uncompressed code from prying eyes. Python needs access to this code for the css compressor


Deny from all

# Order deny,allow
# Deny from all


# Hide uncompressed code from prying eyes. Python needs access to this code for the css compressor

Order deny,allow
Deny from all




Order deny,allow
Require all granted



WSGIScriptAlias / /home/www-mm/staging.foo.com/apache/django.wsgi
WSGIDaemonProcess staging.foo.com user=www-mm group=www-mm
WSGIProcessGroup staging.foo.com

ErrorLog /var/log/apache2/staging.foo.com-error.log
CustomLog /var/log/apache2/staging.foo.com-access.log combined

SSLCertificateFile /etc/letsencrypt/live/staging.foo.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/staging.foo.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf


Разделы SSL были добавлены certbot, инструментом CLI LetsEncrypt.

Я должен добавить, что доступ к каждому из этих поддоменов в современном браузере (например, Chrome) вполне возможен.

Подробнее здесь: https://stackoverflow.com/questions/397 ... ct-alterna
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»