пятница, 3 ноября 2017 г.

GeeTeeDee - database error

Вчера отказался открываться любимый менеджер задач GeeTeeDee. Сказал, что почему-то не может открыть базу данных, обращайтесь, дескать к разработчикам. Но похоже, что поддержка продукта прекращена уже давно (по крайней мере, обновлений не было уже пару лет), так что своими силами исправление ошибки выглядит так.

а) Находим файл с базой - у меня он обнаружился тут C:\Users\<%username%>\AppData\Local\Codea\GeeTeeDee\User Data

б) Открываем файл database.xml, видим там какую-то похабень вместо нормального xml.

в) Если нам повезло, то в той же папке видим database.xml.bak с нормальным содержимым.

г) Бэкапы - это хорошо. Заменяем содержимое основного файла бэкапом. Рыдаем от счастья.

вторник, 24 января 2017 г.

ActiveMQ Websocket - ERR_INSECURE_RESPONSE

Давненько сюда не писала, но тут такой повод чудный, полдня с ним имела половые отношения. Итак, у вас стоит ActiveMQ на сервере, и вы хотите с фронтенда вашего прекрасного сайта через сокет с ним соединиться, чтобы наваять себе, например, чатик. А браузер, зараза такая, вам и говорит: Error in connection establishment: net::ERR_INSECURE_RESPONSE

Говорит он, правда, вам это в том случае, если сайт у вас, как и положено, с https, и соединение с сокетом, соответственно, тоже через wss (а другого вам браузер и не разрешит в таком случае). Теперь надо, чтобы браузер доверился вашему mq, как родному. Для этого нужно сотворить для брокера activemq сертификат, основанный на сертификате домена (он же у вас есть, раз у вас https, правда?)

Итак, по пунктам.

1) sudo openssl pkcs12 -export -in <путь к сертификату> -inkey <путь к ключу> -certfile <путь к сертификату>-out testkeystore.p12

2) sudo /usr/bin/keytool -importkeystore -srckeystore testkeystore.p12 -srcstoretype pkcs12 -destkeystore <имя нового сертификата для mq>.jks -deststoretype JKS

Внимание, путь к keytool может быть другой! Если не нашелся по этому адресу, ищите по серверу. Если стоит java, то и keytool где-то там.

3) В конфиге activemq.xml : <sslContext keyStore="file:${activemq.conf}/<имя нового сертификата для mq>.jks" keyStorePassword="<пароль, который вы задали при создании сертификата>" />

Вуаля. Сохраняем конфиг, перезагружаем activemq, идем пить пиво.