Konfigurowanie certyfikat do użytku przez SSL
This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature.
Dla komunikacji Secure Sockets Layer (SSL) serwera HTTP musi mieć certyfikat zarejestrowany dla każdego gniazda (kombinacji adres/port IP) jest włączenie do użytku za pomocą protokołu SSL.Certyfikaty muszą być autoryzowane do uwierzytelnianie serwera.W tym celu należy albo uzyskania certyfikatu SSL z urzędu wystawiania certyfikatów, takich jak VeriSign, lub jeśli podczas testowania, za pomocą narzędzi do wystawiania i utworzyć certyfikat.
Niezależnie od czy certyfikat jest uzyskany lub self-issued musi być zarejestrowany z serwerem.Firma Microsoft zaleca, aby się zarejestrować, kwerendy i usunąć certyfikaty SSL za pomocą narzędzia konfiguracja protokołu HTTP (HttpCfg.exe).
Rejestrowanie certyfikatów SSL
Aby zarejestrować certyfikat, należy użyć następującego polecenia:
httpcfg set ssl /iIP:Port**/hHash/g**Guid
Argumenty
IP:Port
Adres i port kombinację IP dla którego rejestrujesz się certyfikat.Hash
Wartość mieszania certyfikat.Uwaga
Mieszanie certyfikat można uzyskać z magazynu certyfikat.Ten można przeglądać za pomocą przystawki Certyfikaty lub narzędzie wiersza polecenia, takie jak Polecenie CertUtil.
Guid
Ciąg identyfikatora GUID identyfikujący obiekt rejestrowania certyfikat.Zgodnie z zaleceniami dotyczącymi utworzyć jeden identyfikator GUID dla każdego wystąpienia SQL Server i używać tego samego identyfikatora GUID dla wszystkich rejestracji certyfikat przez to wystąpienie.
Rejestrowanie SSL certyfikat dla IP:Port ma wpływ na wszystkie aplikacje, które nasłuchują na tym IP:Port. Na przykład, jeśli oba wystąpienia SQL Server i innej aplikacji, takich jak Internetowe usługi informacyjne, nasłuchują na tym samym IP:Port (10.0.0.1:80) wystąpienia SQL Server które rejestruje certyfikatu SSL dla 10.0.0.1:80 mają wpływ na Internetowe usługi informacyjne; i usług IIS i wystąpienie SQL Server trzeba korzysta ten sam certyfikat wspólne. Jest to ograniczenie sterownik trybu jądra protokołu HTTP (HTTP.sys).Kiedy HTTP.sys otrzymuje żądanie na IP:Port 10.0.0.1:80, ponieważ żądanie jest zaszyfrowany, to nie można zbadać adres URL, aby ustalić, czy żądanie zagadnień SQL Server lub usług IIS. Https.sys tylko mogą przesyłać żądania po został odszyfrowany go.W związku z tym to nie można użyć innego certyfikat SSL dla różnych aplikacji nasłuchiwanie na tym samym IP:Port.
Jeśli SQL Server działa w systemie Windows Vista (lub równoważne wydaniu systemu Windows Server), może zajść potrzeba specjalnie zarejestrować certyfikat dla lokalnego adresu IP (IPv4: 127.0.0.1 lub protokołu IPv6: [:: 1]), jak również na komputerze zewnętrzny adres IP, aby włączyć połączenia "locahost" przez protokół SSL.Alternatywnie, można określić adres nieokreślony (IPv4: 0.0.0.0 lub protokołu IPv6: [::]) Podczas rejestrowania certyfikat SSL. Ponadto system Windows Vista udostępnia teraz wbudowane narzędzie do zarządzania rejestracji certyfikat SSL, zamiast korzystania z narzędzie httpcfg.exe; nowego polecenia jest następująca:
netsh http add sslcert ipport=IP:Port certhash=Hash appid=Guid
Na przykład:
netsh http add sslcert ipport=[::]:443 certhash=<hash> appid=<guid>Examples
W poniższym przykładzie rejestruje certyfikat:
httpcfg set ssl /i 10.0.0.1:80 /h 2c8bfddf59a4a51a2a5b6186c22473108295624d
/g "{2bb50d9c-7f6a-4d6f-873d-5aee7fb43290}"
Wyszukiwanie certyfikatów
Aby wyświetlić wszystkie certyfikaty zarejestrowane, należy użyć następującego polecenia:
httpcfg kwerendy ssl
Aby wyświetlić pojedynczy certyfikat, należy użyć /i option:
httpcfg query ssl /iIP:Port
Argumenty
- IP:Port
Adres i port kombinację IP dla których wykonywana jest kwerenda certyfikat.
Przykład
httpcfg query ssl
httpcfg query ssl /I 10.0.0.1:80
Usuwanie certyfikatów SSL
Aby usunąć certyfikat, należy użyć /i opcji w następujący sposób:
httpcfg delete ssl /iIP:Port
Argumenty
- IP:Port
Adres i port kombinację IP dla których w przypadku usuwania certyfikat.
Przykład
httpcfg delete ssl /i 10.0.0.1:80
Uzyskiwanie certyfikatów
Można uzyskać certyfikat s, które są wymagane przez SQL Server dla komunikacji SSL z internetowych klientów z certyfikat urząd, taki jak VeriSign.
Jednak podczas testowania, można utworzyć przy użyciu narzędzie o nazwie MakeCert.exe certyfikat testowego.MakeCert.exe jest częścią .NET Framework SDK. MakeCert.ext są także dostępne w zestawie SDK platformy.Aby pobrać SDK, należy przejść do Centrum deweloperów programu Microsoft .NET Framework and the Centrum pobierania firmy Microsoft, odpowiednio.MakeCert.exe tworzy certyfikat X.509.Powoduje to utworzenie publicznego i prywatnego klucz parę dla podpisów cyfrowych i przechowuje je w pliku certyfikat.To narzędzie również kojarzy pary kluczy z określonego Wydawca i tworzy certyfikat X.509, która wiąże nazwę określone przez użytkownika do publicznej części pary kluczy.
Aby utworzyć certyfikat SSL dla serwera, który odpowiada nazwie hosta (MySQLServer), można wykonać MakeCert za pomocą następujących opcji:
makecert -r -pe -nCN="MySQLServer**"-eku** 1.3.6.1.5.5.7.3.1 -ss my -srlocalmachine
-skyexchange-sp"Microsoft RSA SChannel Cryptographic Provider"-sy12
Przełączniki wiersza polecenia
-r
Tworzy samopodpisujący się certyfikat.Certyfikat z podpisem własnym jest certyfikat, który nie jest podpisany przez urząd certyfikacji.Ponieważ nie jest podpisany przez urząd certyfikacji, mogą być używane do szyfrowanie wymaga protokołu SSL, ale nie mogą być używane do uwierzytelnianie serwera.-n
Określa nazwa serwera.Ta nazwa musi być zgodne ze standardem X.500.Najprostszą metodą jest do określenia nazwy w podwójny cudzysłów, poprzedzona CN =.-eku
Określa listę oddzielonych przecinkami, rozszerzone użycie klucz identyfikatory obiektów (OID) do certyfikat.Dla SQL Server, wymagany jest certyfikat SSL, który jest prawidłowy dla uwierzytelnianie serwera, który ma identyfikator OID 1.3.6.1.5.5.7.3.1 (szOID_PKIX_KP_SERVER_AUTH).-ss
Określa magazyn certyfikatów, w której zapisany jest utworzony certyfikat.Firma Microsoft zaleca, aby zapisać te informacje w Moje przechowywać, chociaż mogą być zapisane w dowolne miejsce w magazynie certyfikat.-sr
Określa magazyn certyfikatów, w którym znajduje się certyfikat.Lokalizacja może być: CurrentUser (ustawienie domyślne), lub LocalMachine.Ponieważ ten certyfikat jest tworzony dla usług, należy umieścić na komputerze lokalnym.-niebo
Określa typ klucz certyfikat.Musi to być Podpis, Wymianalub liczbą całkowitą, takie jak 4.W przypadku algorytmu wymiany klucz publicznego RSA Wymiana jest wymagany w tym miejscu.Jest to typ klucz używanego do szyfrowania i odszyfrowywania klucze sesja.-sp
Określa nazwę dostawca interfejsu CryptoAPI.Dla certyfikatów SQL Server, to może być ustawiona na Microsoft RSA SChannel Cryptographic dostawca.-sy
Określa typ dostawca interfejsu CryptoAPI.Jeśli dostawca jest Microsoft RSA SChannel Cryptographic Provider, this is 12.
Dodatkowe przełączniki wiersza polecenia
-b
Wartość data w formacie mm/dd/rrrr, określającą początek okresu ważności certyfikat.Wartość domyślna to jest data utworzenia certyfikat.-e
Wartość data w formacie mm/dd/rrrr, określającą koniec okresu ważności certyfikat.Jeśli zestaw nie inaczej, wartość domyślna to jest 12/31/2039 11: 59: 59 GMT.
Przykłady
W poniższym przykładzie pokazano, tworzenie przy użyciu certyfikat MakeCert dodatkowe opcje.
makecert -r -pe -n "CN= MySQLServerName" -b 01/01/2000 -e 01/01/2036
-eku 1.3.6.1.5.5.7.3.1 -ss my -sr localMachine -sky exchange
-sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12
Po utworzeniu certyfikat można uzyskać jego wartość mieszania programu MMC certyfikat lub przy użyciu narzędzie, takie jak Polecenie CertUtil.Za pomocą Polecenie CertUtil, można wyświetlić certyfikat, który został utworzony.
C:\>certutil -store "my" "MySQLServerName"
================ Certificate 2 ================
Serial Number: e302d3a7a831c9884c0dd736f24825e6
Issuer: CN=MySQLServerName
Subject: CN=MySQLServerName
Signature matches Public Key
Root Certificate: Subject matches Issuer
Cert Hash(sha1): d2 2f 9a 7f 18 cb ed 13 a1 3e be e5 32 69 6c 4b ad ba b9 30
Key Container = 956cbc46-f005-4aeb-b521-7c313f2ccd10
Provider = Microsoft RSA SChannel Cryptographic Provider
Encryption test passed
CertUtil: -store command completed successfully.
Wartość mieszania, uzyskana z wyniki z systemem Polecenie CertUtil mogą być przekazane do narzędzie httpcfg.exe zarejestrować certyfikat z podpisem własnym.
Przed użyciem MakeCert tworzenie samopodpisujący się certyfikat SSL i zarejestrowanie go z HTTP.sys, sprawdź, czy komputer ma już zainstalowany program IIS.Program IIS zawiera kreatora, który ułatwia rejestracji certyfikatów SSL.W związku z tym jeśli program IIS jest już zainstalowana na komputerze, certyfikat SSL może zostały już zarejestrowane w HTTP.sys.Jeśli nie, należy utworzyć i zarejestrować certyfikat za pomocą Kreatora programu IIS.
Ponieważ certyfikaty SSL efekt dla całego komputera, nie jest ważny, czy program IIS jest używany do rejestrowania certyfikat ma być używany przez SQL Server.
Uwagi
Po odinstalowaniu wystąpienie SQL Server, wszystkie powiązania certyfikat SSL utworzone za pomocą httpcfg.exe pozostanie, chyba że zostaną ręcznie usunięte. Ponieważ te ustawienia nie zostały utworzone przy użyciu konfiguracji programu SQL Server, nie są usuwane przez nią.Dlatego jeśli wystąpienie SQL Server jest odinstalowane, powiązania, takie powinny również zostać usunięte.
Chociaż przy użyciu protokołu SSL, za pośrednictwem protokołu HTTP z SQL Server nie wymaga usług IIS, po zainstalowaniu usług IIS obok wystąpienie SQL Server, usługa HTTP SSL staje się połączyć z użycia usług IIS. Na przykład po zatrzymaniu usług IIS, takie jak przy użyciu polecenie net stop iisadmin w wiersz polecenia, program IIS zatrzymuje również usługa HTTP SSL.Ponadto po zainstalowaniu usług IIS w systemie Windows nie może uruchomić usługa HTTP SSL bez również uruchamianie Internetowych usług informacyjnych (Inetinfo.exe).