Ошибка сертивикатов

pride

Member
Не могу добавить сертификат через Вэб интерфейс.

Вижу вот эту ошибку:

This application has no explicit mapping for /error, so you are seeing this as a fallback.

Tue Sep 05 08:56:13 CEST 2017
There was an unexpected error (type=Internal Server Error, status=500).
org.hibernate.exception.SQLGrammarException: could not prepare statement



08:51:51,251 WARN SqlExceptionHelper - http-nio-8888-exec-7 SQL Error: 42122, SQLState: 42S22
08:51:51,251 ERROR SqlExceptionHelper - http-nio-8888-exec-7 Column "CERT0_.PRIVATE_KEY" not found; SQL statement:
select cert0_.certificate_id as certific1_4_, cert0_.cert as cert2_4_, cert0_.domain as domain3_4_, cert0_.private_key as private_4_4_, cert0_.key_pass as key_pass5_4_ from cert cert0_ [42122-184]
08:51:51,251 ERROR application - http-nio-8888-exec-7 Error Rendering View[/dashboard.xhtml]
javax.el.ELException: /file:/usr/local/FlashphonerWebCallServer-5.0.2432/lib/wcs_manager-1.0.jar!/META-INF/resources/certificates.xhtml @35,96 rendered="#{not empty certificateController.certModel.cert}": javax.persistence.PersistenceExce
<------>at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:114)
<------>at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194)
<------>at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:458)
<------>at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1850)
<------>at javax.faces.render.Renderer.encodeChildren(Renderer.java:176)
<------>at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:890)
<------>at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:304)
<------>at com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:114)
<------>at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:890)
<------>at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:304)
<------>at com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:114)
<------>at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:890)
<------>at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:85)
<------>at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:72)
<------>at org.primefaces.component.layout.LayoutUnitRenderer.encodeEnd(LayoutUnitRenderer.java:49)
<------>at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:920)
<------>at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1863)
<------>at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
<------>at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859).....


Как быть ?
 

pride

Member
Подскажите! Имееться 2 домена, ведущие на один WCS как мне залить 2 SSL сертификата для разных доменов ?
 

Max

Administrator
Staff member
Мы такой импорт не тестировали. Тестирование может занять время.
Наиболее быстрый способ - установить HA Proxy, который проксирует websocket трафик на WCS по адресу ws://localhost:8080
И на HA Proxy уже сконфигурировать поддержку двух доменов.
Т.е. WCS работает по ws (http), а HA Proxy оборабатывает входящие соединения по wss (https).
Здесь есть небольшой док по настройке HA Proxy:
https://flashphoner.com/docs/wcs5/w...up_and_testing-firewall_traversal-haproxy.htm
Можно также поискать в интернете.
 

Max

Administrator
Staff member
Была ниже, обновился не помогло. 5.0.2432
В одной из предыдущих версий сервера были изменения в базе, поэтому при открытии Security | Certificates есть SQLGrammarException. Чтобы страница открывалась, нужно удалить WCS_HOME/database/wcs_manager.mv.db и перезапустить сервер.

Имееться 2 домена, ведущие на один WCS как мне залить 2 SSL сертификата для разных доменов ?
Можно импортировать более одного сертификата – для разных доменов, но сервер будет отдавать только один сертификат, соответственно при использовании другого домена будет ошибка сертификата. Чтобы использовать разные доменные имена с одним сервером, должен быть один мультидоменный (multi-domain) сертификат – один сертификат для нескольких доменов (такие выпускают, например, Comodo и GlobalSign). Мы с ними не тестировали.
 

Max

Administrator
Staff member
Чтобы страница открывалась, нужно удалить WCS_HOME/database/wcs_manager.mv.db и перезапустить сервер.
Если у вас были изменения в базе, сделанные с помощью CLI, вам нужно будет восстановить их по-новому.
Т.е. вручную добавить REST apps и REST methods.
Поэтому рекомендуется сделать бэкап файлов в папке WCS_HOME/database, чтобы иметь возможность восстановить их содержимое.
Есть вариант - не обновлять базу. Тогда сертификаты нужно импортировать вручную через SSH.
 
Top