Налаштування сертифіката для використання протоколом ssl

Власні XML-веб-служби застаріли. У майбутньої версії Microsoft SQL Server ця можливість буде видалена. Уникайте використання цієї можливості в нових розробках і заплануйте зміна існуючих додатків, в яких вона застосовується.

Незалежно від способу, яким отримано сертифікат, він повинен бути зареєстрований на сервері. Для реєстрації, запиту і видалення сертифікатів SSL рекомендується використовувати службову програму конфігурації HTTP (HttpCfg.exe).

Для реєстрації сертифіката виконайте наступну команду:

Рядок ідентифікатора GUID, яка ідентифікує сутність, що реєструє сертифікат. Рекомендується створювати окремий рядок GUID для кожного екземпляра SQL Server і користуватися нею для реєстрації всіх сертифікатів для цього примірника.

Сертифікат, необхідний SQL Server для зв'язку з клієнтами в Інтернеті по протоколу SSL, можна отримати в центрі сертифікації (наприклад, Verisign).

Однак в тестових цілях можна створити спеціальний сертифікат за допомогою програми MakeCert.exe. MakeCert.exe входить до складу пакета .NET Framework SDK. а також в пакет Platform SDK. Пакет SDK можна завантажити з наступних сторінок: Центр розробки для платформи Microsoft .NET Framework і Центр завантаження Microsoft. Ця програма створює сертифікати X.509. Створювані для цифрового підпису відкритий і закритий ключі зберігаються в файлі сертифіката. Ця програма також пов'язує цю пару ключів з зазначеним видавцем і створює сертифікат X.509, який прив'язує вказане користувачем ім'я до відкритого ключа.

Щоб створити SSL-сертифікат для сервера з ім'ям вузла (MySQLServer), необхідно запустити програму MakeCert з наступними параметрами:

Ключі командного рядка

Створює самозаверяющійся сертифікат. Самозаверяющійся сертифікат з - це сертифікат, який підписаний не центром сертифікації. Оскільки він не підписаний центром сертифікації, цей сертифікат може використовуватися для шифрування, обов'язкового для протоколу SSL, але не може застосовуватися при перевірці автентичності сервера.

Вказує ім'я сервера. Це ім'я має відповідати стандарту X.500. Найпростіший спосіб вказати ім'я - укласти його в подвійні лапки і поставити після CN =.

Вказує в сертифікаті список розділених комами об'єктних ідентифікаторів (OID) розширеного використання ключів. Для SQL Server потрібно SSL-сертифікат, відповідний для перевірки автентичності сервера і має OID 1.3.6.1.5.5.7.3.1 (szOID_PKIX_KP_SERVER_AUTH).

Вказує сховище сертифікатів, в якому зберігається створений сертифікат. Рекомендується зберігати його в сховище my. хоча сертифікат може міститися в будь-якому сховище.

Вказує сховище сертифікатів, в якому знаходиться сертифікат, і може дорівнювати: currentuser (за замовчуванням) або localmachine. Оскільки сертифікат створюється для служби, він повинен бути поміщений на локальний комп'ютер.

Вказує тип ключа сертифіката. Це може бути тип signature. exchange або ціле число, наприклад 4. Для алгоритму передачі відкритих ключів RSA потрібно тип exchange. Він використовується для шифрування і дешифрування ключів сеансу.

Вказує ім'я постачальника CryptoAPI. Для сертифікатів SQL Server це може бути Постачальник служб шифрування Microsoft RSA SChannel.

Вказує тип постачальника CryptoAPI. Якщо постачальником є ​​Постачальник служб шифрування Microsoft RSA SChannel. це значення дорівнює 12.

Додаткові параметри командного рядка

Значення дати в форматі ДД / ММ / РРРР, яке вказує початок терміну дії сертифіката. За замовчуванням це дата створення сертифіката.

Значення дати в форматі ДД / ММ / РРРР, яке вказує кінець терміну дії сертифіката. Якщо не вказано інше, термін дії сертифікату закінчується 31/12/2039 в 11:59:59 за Гринвічем.

У наступному прикладі показано створення сертифіката за допомогою програми MakeCert з додатковими параметрами.

Хеш, отриманий запуском CertUtil. можна передати програмі HttpCfg.exe для реєстрації самозаверяющего сертифіката.

Перш ніж запускати MakeCert для створення самозаверяющего SSL-сертифіката і реєструвати його через Http.sys, перевірте, чи встановлені на комп'ютері служби IIS. Ці служби містять майстер, який полегшує реєстрацію сертифікатів SSL. Якщо служби IIS встановлені на комп'ютері, то SSL-сертифікат вже міг бути зареєстрований в Http.sys. Якщо це не так, для створення і реєстрації сертифіката можна скористатися майстром IIS.

Оскільки сертифікати SSL діють на всьому комп'ютері, не має значення, що для реєстрації сертифіката SQL Server використовувалися служби IIS.

При видаленні примірника SQL Server все прив'язки сертифікатів SSL, створені за допомогою Httpcfg.exe, залишаються, тому їх необхідно видалити вручну. Оскільки програма установки SQL Server не створює ці параметри, вона їх і не видаляє. Тому при видаленні примірника SQL Server необхідно видаляти і прив'язки до сертифікатів SLL.

Хоча використання SSL по протоколу HTTP в SQL Server не вимагає наявності служб IIS, після їх установки разом з екземпляром SQL Server служба HTTP SSL стає пов'язаної зі службами IIS. Наприклад, при зупинці служб IIS командним рядком net stop iisadmin служба HTTP SSL також зупиняється. Крім того, після установки служб IIS під Windows можна запустити службу HTTP SSL без запуску IIS (Inetinfo.exe).

Схожі статті