Конвертирование сертификатов (PEM/P7B/PFX/DER)

Форматы сертификатов можно менять при помощи команд OpenSSL или посредством инструментов Конвертор SSL. Есть еще отличный online-конвертер.

Ниже указаны наиболее употребляемые комманды:

I. Конвертирование файлов PEM
PEM в DER
openssl x509 -outform der -in certificate.pem -out certificate.der
PEM в P7B
openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CACert.cer
PEM в PFX
openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt

II. Конвертирование файлов P7B
P7B в PEM openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
P7B в PFX
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer openssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile CACert.cer

III. Конвертирование файлов PFX
PFX в PEM
openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes

IV. Конвертирование файлов DER
DER в PEM
openssl x509 -inform der -in certificate.cer -out certificate.pem

Источник: https://ssl4less.ru/faq/ehniceskie-voprosy/onvertirovanie-sertifikatov-pem-p7b-pfx-der.html

AutoMerge Script for Bitbucket.org

В рамках автоматизации одного проекта написал скрипт на PowerShell, который мержит ветки используя bitbucket API. Огромный плюс использования этого скрипта для автоматического мержа в том, что вам не нужно вытягивать исходники. Все делается на стороне bitbucket. Не все идеально, где то можно оптимизировать, но он работает =)

https://github.com/voiplab/Misc/blob/master/RemoteMergeBitbucket.ps1

Нагрузочное тестирование Elastix / NEOPbx / FreePBX / Asterisk

В данной заметке я расскажу вам про то, как вы можете своими силами организовать базовое нагрузочное тестирование с помощью утилиты sipp. Итак, качаем и устанавливаем последнюю версию:

После успешной установки переходим к конфигурированию Elastix / NEOPbx / FreePBX. Я покажу пример подготовки к тестированию через WEB-интерфейс. Итак, первое, что необходимо сделать — это создать номер(Extension).  Если у вас уже есть существующий номер, который вы используйте, то можно пропустить этот шаг. Переходим во вкладку PBX > PBX Configuration > Extensions и жмем кнопку Submit, чтобы создать номер. Он нам понадобится для того, чтобы проверить что прохождение dialplan-а проходит как запланировано.

Далее необходимо создать номер

192.168.1.53 — сервер Elastix / NEOPbx / FreePBX;
-s 8000 — Указывает номер который будет вызван. Может быть числом или текстом. (Значение по умолчанию — service);
-i 192.168.1.67 — Локальный IP адрес. Этот адрес будет использован в SIP сообщениях в качестве адреса источника сообщений. (По умолчанию — 127.0.0.1);
-d 1h — Устанавливает длительность звонков. В данном случае звонки будут длиться 2 часа. (По умолчанию — 1 секунда);
-l 50 — Ограничивает максимальное количество одновременных звонков;
-aa — Включает автоматические ответы 200 OK на сообщения INFO, UPDATE и NOTIFY;
-mi 192.168.1.67 — Устанавливает локальный IP для RTP;
-rtp_echo — Включает режим RTP эха. Все RTP пакеты полученные от удалённой стороны — отправляются обратно;
-nd — Отключает стандартную обработку неожиданных ситуаций — sipp будет прерывать звонки в случае получения неправильных SIP сообщений;
-r 5 — Устанавливает максимальную «скорость звонков» (CPS) в данном случае — не более 5 звонков в секунду.

SMS2Mail Forwader

Screenshot_2015-10-22-22-36-13

Сидел я вечером, пил чай с баранками и решил себя попробовать в роли Android Developer’а. Получилось у меня или нет — судить вам.

sms3-03

Итак, задача написать приложение которое пересылает все входящик СМС на указанный почтовый ящик. Естественно, основной функциаонал должна делать служба в фоне. А именно отслеживать входящие СМС и отправлять их на почтовый адрес. Ну и нужно было чтобы служба эта запускалась автоматически при включении/перезагрузке телефона.

Начал я с придумывания дизайна. Основное требования — максимальный минимализм =D. В результате получился вот такой макет, который вы видите слева.

Покодив пару вечеров получилась вот такая незамысловатая программа, скачать которую можно из Play Market: SMS2Mail Forwarder.

Кстати, хотел бы поблагодарить своего дизайнера Оксану Котибенко, которая вдохновившись идеей «для народа все должно быть Free«, нарисовала мне замечательное лого для приложения

Пишем логи IIS в MSSQL

Цель: организовать хранилище логов IIS под управлением MSSQL.

Условия:

  • Для удобного поиска (SELECT’а) по времени значение date и time должны храниться в одном поле
  • Каждая запись должна иметь уникальный ключ
  • При переносе логов в MSSQL должен использоваться BULK insert.
  • Вставка логов производится за предыдущий день.

Сразу оговорюсь, что напрямую писать логи в MSSQL не используя сторонний софт не получится. Поэтому я написал небольшую консольную программу IIS2SQL, которая удаляет из файла лога закомментированные строки и форматирует поля date и time в одно поле для дальнейшей bulk-вставки. У Microsoft есть аналогичная программа preplog, но она только удаляет закомментированные строки.

Итак, давайте для начала включим логирование в формате W3C. Я включу логирование для всех своих сайтов. В настройках вы можете указать необходимые поля для логирования.

Теперь необходимо создать необходимую базу и таблицу. Если вы уже гуглили данный вопрос, то обратили внимание, что в сети есть куча руководств и структура таблиц в них может отличаться. Поэтому мы будем делать свою таблицу на основании логов которые нам отдает IIS. Открываем любым текстовым редактором (лучше блокнот не использовать,т.к. велика вероятность что он зависнет) файл логов и смотрим на 3 строку. В ней мы и найдем заголовки полей, которые нам необходимо будет создать.

В моем случае это #Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status time-taken. Не забывайте, что одно из условий было объединение полей date и time, поэтому создадим соотвествующую табличку. Обратите внимание на то, что я в таблицу добавил автоинкрементное поле Id.

Проблема в том, что если формат лога не соответствует вашей таблице, то BULK-insert из файла не получится. Поэтому вставку в таблицу мы будем делать во View. Создадим новый View для этой БД, исключив поле Id.

Теперь вернемся к программе, которую я написал. Скачайте IIS2SQL и распакуйте в любой удобный каталог на сервере MSSQL. Если один сервер для MSSQL и IIS, то можно сразу запустить программу и поместить в планировщик заданий. А если нет, то вам надо будет каким то образом логи передать на сервер MSSQL. Напрямую с сервера IIS BULK сделать не получится. На сервере IIS создайте пользователя и расшарьте каталог с логами. А на сервере MSSQL напишем скрипт и поместим его выполнение в планировщик. Чтобы сервер сильно не нагружать, лучше настроить выполнение ночью.

Параметры для запуска IIS2SQL:

Вот сам скрипт:

Вот в принципе и все! Удачи!

Внедряем email-аутентификацию DKIM в Postfix за 5 минут

Работал у нас почтовый сервер для рассылки корреспонденции клиентам. И все бы ничего, но стал люд жаловаться, что не доходят письма или  в спам попадают. И хотя spf был настроен, все говорило о том, что пора нам к нашему Postfix прикрутить DKIM. Как гласит цитата откуда-то с хабра:

Для начала установим необходимый софт командой

После установки необходимо отредактировать файл /etc/opendkim.conf, добавив в него строки

Теперь создадим рабочий каталог,а в нем новый приватный и открытый ключ. Открытый ключ мы потом пропишем на нашем DNS-сервере.

В каталоге /etc/opendkim у вас должно появиться 2 новых файла. mail.private — это наш приватный ключ, которым мы будем подписывать письма. А mail.txt содержит публичный ключ. Список имеющихся ключей укажем в файле /etc/opendkim/keytable в формате «название домен:селектор:/путь/до/ключа». В нашем случае содержимое файла будет таким:

Теперь объясним OpenDKIM почту каких доменов какими ключами подписывать в файле /etc/opendkim/signingtable в формате «домен название-ключа».

В файле /etc/opendkim/trusted необходимо прописать ваши доверенные узлы:

Зададим необходимые права, добавим пользователя postfix в группу opendkim. Это нужно чтобы postfix смог отправлять письма на подпись через сокет OpenDKIM. После чего перезапустим службу. Я рекомендую заглянуть в системный лог и убедиться, что нет ошибок при запуске службы.

Вторым этапом настроим postfix, чтобы он мог подписывать нашу почту. В main.cf необходимо добавить:

Ну и опять рестарт/релоад

Третьим и последним этапом мы настроим наш DNS сервер добавив в него TXT запись. Выведите содержимое файла mail.txt и используйте следующую пару ключ-значение для добавления новой записи в DNS.

Для применения изменений в DNS может пройти несколько часов. Проверить DKIM-подпись вы можете отправив пиьсмо через свой сервер на ящик check-auth2@verifier.port25.com. Ответное письмо вы получите в виде отчета. Например:

Полезные ссылки:

Server 2008 R2 xenpci.sys BSOD

Based on customer feedback, we have come across an error that can occur when restoring your VM onto the new
platform. After completing steps 11-k in the ‘Migrate_Server2k8r2’ guide you are told to restore the server and you
should get to the login. Sometimes you will be presented with another BSOD instead stating ‘”xenpci.sys, the driver
unloaded without cancelling pending operations’. If you experience this, you will need to remove the xen drivers
manually.
1. Select ‘Launch Startup Repair (recommended)’.
a. Select the radio button ‘use recovery tools….’, and install the Virtio Storage drivers and make a note
of the drive letter assigned to the OS drive. In this case, I’ll refer to it as the ‘F:\’ drive but yours
might be different.
b. Wait for the ‘Startup Repair’ process to fail, or cancel it and click ‘Finish’.
c. From the ‘Choose a recovery tool’ window select ‘Command Prompt’.
d. Now type the following:
i. ‘rmdir /q /s “f:\Program Files (x86)\Xen PV Drivers”
ii. ‘del /q “f:\Windows\System32\drivers\xen*”
iii. ‘del /q f:\Windows\inf\oem1.inf
iv. ‘del /q f:\Windows\inf\oem2.inf
v. ‘del /q f:\Windows\inf\oem3.inf
vi. ‘del /q f:\Windows\inf\oem4.inf
vii. ‘del /q f:\Windows\inf\oem5.inf
viii. ‘del /q f:\Windows\inf\oem*.pnf
e. Now type ‘regedit’, then hit enter.
f. Select ‘HKLM’, go to ‘File\Load Hive
g. For this step, make sure you select the drive you are recovering and not the X: (boot) drive. Go to
C:\Windows\system32\config’ and open the ‘SYSTEM’ file.
h. Type any ‘Key Name’ you want, example ‘temp’.
i. Navigate to ‘HKLM\temp\ControlSet001\services’.
i. Delete Key Names ‘xennet’, ‘xenpci’, ‘xenvdb’.
j. Navigate to ‘HKLM\temp\ControlSet002\services’.
i. Delete Key Names ‘xennet’, ‘xenpci’, ‘xenvdb’.
k. Navigate back to ‘HKLM\temp’.
i. Press ‘Ctrl + f’ to find.
ii. Search for ‘upperfilters’ and keep pressing F3 to find any key with reference to ‘xenpci’ that
have the same class value as below and delete them.
1. ‘HKLM\***\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}
2. ‘HKLM\***\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}
3. ‘HKLM\***\Class\{4D36E97B-E325-11CE-BFC1-08002BE10318}
l. Check these values are still true:
i. intelide ‘3’
ii. msahci ‘0’
iii. pciide ‘0’
iv. LSI_SAS ‘3’
m. Navigate back to the ‘temp’ registry key and select ‘File\Unload Hive’, then press ‘Yes’.
n. Restart the server.
2. When your server has started, Login.

Сегодня мы будем решать проблему, с которой я столкнулся давеча. Итак, у нас есть виртуальная машина Windows Server 2008 R2 на борту с установленными паравиртуальными драйверами. Эта виртаулка крутится работает под XEN’ом. Необходимо ее перести на другой сервер под VirtualBox. Но не все так просто. Первое, что необходимо было сделать — это сконвертировать. Как это сделать, я уже писал в одной из своих заметок:
После того как вы сконвертируйте IMG в VDI формат и подключие к этот диск к новой виртуальной машине под VirtualBox, скорее всего вы получите первый BSOD с кодом 0x0000007B. 0x0000007B указывает, что  во время запуска операционная система Microsoft Windows потеряла доступ к системному разделу. Чтобы пофиксить эту проблему необходимо в настройках виртуальной машины удалить SATA-контроллер и добавить IDE-контроллер:
VirtualBox-IDE
Далее после попытки запустить сервер вы скорее всего получите второй BSOD (0x0000000d4 xenpci.sys), причиной которого будут установленные паравиртуальные драйверы. Давайте удалим их. Запускаем Windows в режиме восстановления и открываем командную строку. Далее по списку выполняем:
После удаления файлов перейдем к правке реестра. Введите команду regedit, выберите раздел HKLM и загрузите куст (File\Load Hive) C:\Windows\system32\config\SYSTEM с именем temp. В разделе HKLM\temp\ControlSet001\services и HKLM\temp\ControlSet002\services удаляем ключи xennetxenpcixenvdb.
Переходим обратно в HKLM\temp, жмем CTRL+F и ищем по фразе upperfilters (F3 для продолжения поиска). Как только в значение появится xenpci необходимо удалить этот раздел. У меня нашлись разделы:
  • HKLM\***\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}
  • HKLM\***\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}
  • HKLM\***\Class\{4D36E97B-E325-11CE-BFC1-08002BE10318}
Теперь вернемся к разделу temp и выгрузим куст (File\Unload Hive). После чего перезагрузим сервер и радуемся рабочему серверу.

How-to Publish the Introduction of an Essay

Our Services are a customizable coming up with care which provides producing of any type of academic newspapers. Their documents are drafted yourself. Their writers carry more than a MA magnitude and a consequence of they are great for formulating paperwork in lots of issues. On top of creating, they generally do croping and editing and formatting hard work. Prospects can speak with agents of Essayforce by dialing a toll-free telephone number, joining via the web chat, by giving e-mail instantly to guidance service provider or by delivering e mail working with using the web make. This service has 24/7 promote software. next
Cost Value of document is dependent upon differing points. Similarly to associated options, it is actually measured on the basis of: form of perform the job, time frame, selection of internet pages and school stage. On the grounds that, Our Solution can provide making expert services for various types of data files, costs for each web page varies from circumstance to circumstances. Like, guide expenditures $15.95 — $39.95; ebook statement/review $13.95 — $42.95; dissertation $14.95 — $35.95 for every page for example.

Читать далее

Шпаргалка по deadlock в MSSQL

Включить трассировку

-1 = сбор информации изо всех сессий.

Проверить трассировку

или

логи о дедлоках будут писаться в errorlog сервера

Рекомендации:

1.Перед включением трассировки настроить сохранение логов сервера, скажем, не 6, а 24 и более. Это делается в EM, Management / SQL Server logs / Right mouse click / Configure / [X] Limit… Maximem number of поставить, скажем, в 30.

2.Настроить на планировщике ежедневный вызов sp_cycle_errorlog — эта процедура вызывает сброс текущего лога.

После того, как будут пойманы 1 — 2 — 3 дедлока выключить трассировку:

Вот краткий перечень флагов, которые могут пригодиться при отлове взаимоблокировок:

  • 1204 – сбор расширенной информации о взаимоблокировке.
  • 3605 – выдача информации в EventLog.
  • 3406 – выдача информации в файл errorlog.
  • 1206 – сбор информации не только о блокировках, участвующих во тупиковой ситуации (что делает флаг 1204), но и об остальных блокировках, наложенных заблокированными транзакциями.
  • 1200 – сбор информации о порядке наложения блокировок (недокументированный).

Сейчас нас интересует флаг под номером 1204 – выдача расширенной информации о взаимоблокировке, получить же информацию при выставленном флаге можно двумя способами.

1. Запустить SQL Profiler, специальную программу для отслеживания работы сервера, и настроить в ней перехват ошибок (event class Errors and Warnings: Exception and Error Log), а затем выставить флаг трассировки 3605. В этом случае вся дополнительная информация о работе SQL-сервера будет сбрасываться в Event Log и перехватываться профайлером, где ее в последствии можно будет посмотреть.
2. Выставить флаг отладки 3406. В этом случае вся дополнительная информация будет сбрасываться в файл errorlog, который по умолчанию находится в каталоге LOG директории SQL сервера.

PAG: 7:1:845557
DBCC PAGE ({dbid | dbname}, filenum, pagenum[, printopt]) в результатах вывода которой можно увидеть object_id (а по нему уже и мя объекта получить)

Полезные ссылки

http://www.sql.ru/articles/mssql/2007/011005DeadlockTroubleshootingPart1.shtml
http://rsdn.ru/article/db/deadlocks.xml

Выводим информацию о сервере на рабочий стол Windows

В определенный момент количество обслуживаемых Windows серверов стало достаточно большим. Поэтому я решил выводить информацию о сервере на рабочий стол. Для решения этой простой задачки возьмем замечательную утилиту от Microsoft — bginfo.

bginfo-screen

Скачиваем архив, распаковываем программу в c:\windows\system32 и открываем ее. Откроется шаблон и настройки программы. Произведите необходимые настройки шаблона и сохраните в произвольном месте. Я сохранил в c:\Users\serverinfo.bgi. Мне нужно было чтобы информация отображалась у всех пользователей, включая терминальных. Поэтому щелкните кнопку Desktops и в поле Logon Desktop for Terminal Services users выберите пункт Update this wallpaper.

Теперь добавим все это в автозагрузку. Для этого открываем ветку реестра HKLM\Software\Microsoft\Windows\CurrentVersion\Run и добавляем строковый параметр bginfo c:\Users\serverinfo.bgi /timer:0 /silent /nolicprompt. На этом настройка закончена.