{"id":45,"date":"2009-04-16T22:18:55","date_gmt":"2009-04-16T20:18:55","guid":{"rendered":"http:\/\/wawszczak.pr0.pl\/?p=45"},"modified":"2016-05-17T10:59:16","modified_gmt":"2016-05-17T10:59:16","slug":"szablonowy-certyfikat-dla-pingwina-microsoft-certificates-services","status":"publish","type":"post","link":"https:\/\/wawszczak.pr0.pl\/en\/2009\/04\/16\/szablonowy-certyfikat-dla-pingwina-microsoft-certificates-services\/","title":{"rendered":"Szablonowy certyfikat dla Pingwina : Microsoft Certificates Services"},"content":{"rendered":"<p>Us\u0142ugi certyfikacyjne Microsoftu dzia\u0142aj\u0105 w oparciu o szablony certyfikatu, w kt\u00f3rych zawarte s\u0105 informacje dotycz\u0105ce przeznaczenia certyfikatu wydanego na jego podstawie, atrybut\u00f3w zabezpiecze\u0144 zwi\u0105zanych z mo\u017cliwo\u015bci\u0105 wydawania i u\u017cytkowania certyfikatu i tym podobnych rzeczy powi\u0105zanych z u\u017cytkowaniem Centrum Certyfikacji w strukturach Active Directory.<br \/>\nBardzo cz\u0119sto w takim \u015brodowisku musi si\u0119 pojawi\u0107 system dzia\u0142aj\u0105cy pod kontrol\u0105 linuxa. Ot, cho\u0107by VMware ESX, kt\u00f3re s\u0105 hostowane przez Red Hat&#8217;a. W takich systemach wszelkie operacje zwi\u0105zane z certyfikatami wykonywane jest przez pakiet <a href=\"http:\/\/www.openssl.org\">openssl<\/a>. Potrafi on niezmiernie du\u017co zrobi\u0107 z automatu, jednak\u017ce jego funkcjonalno\u015b\u0107 ogranicza si\u0119 do dzia\u0142a\u0144 kryptograficznych, jako \u017ce nie jest to narz\u0119dzie przeznaczone do integracji z Active Directory. Na szcz\u0119\u015bcie jednak Microsoft swoje rozwi\u0105zanie automatyzuj\u0105ce wydawanie certyfikat\u00f3w zmie\u015bci\u0142 w ramach standardu, i przy niewielkich modyfikacjach pliku konfiguracyjnego mo\u017cna tak\u017ce w \u017b\u0105daniu Certyfikatu (Certificate Request) generowanym przy pomocy tego narz\u0119dzia umie\u015bci\u0107 tak\u017ce pole odpowiedzialne za szablon przy pomocy kt\u00f3rego CA utworzy certyfikat.<br \/>\nAby takie rozszerzenie doda\u0107, trzeba przede wszystkim poinformowa\u0107 openssl&#8217;a o tym, \u017ce taki mechanizm istnieje. Robi si\u0119 to przez rejestracj\u0119 w pliku konfiguracyjnym openssl&#8217;a oid&#8217;u wykorzystywanego przez Microsoft do oznaczenia szablonu certyfikatu. W tym celu nale\u017cy umie\u015bci\u0107 w sekcji<\/p>\n<div class=\"codecolorer-container text default\" style=\"overflow:auto;white-space:nowrap;width:600px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/><\/div><\/td><td><div class=\"text codecolorer\">[ new_oids ]<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>lini\u0119<\/p>\n<div class=\"codecolorer-container text default\" style=\"overflow:auto;white-space:nowrap;width:600px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/><\/div><\/td><td><div class=\"text codecolorer\">CertificateTemplate = 1.3.6.1.4.1.311.20.2<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>oraz zarejestrowa\u0107 t\u0119 sekcj\u0119 jako definiuj\u0105c\u0105 niestandardowe oidy za pomoc\u0105 linii<\/p>\n<div class=\"codecolorer-container text default\" style=\"overflow:auto;white-space:nowrap;width:600px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/><\/div><\/td><td><div class=\"text codecolorer\">oid_section &nbsp; &nbsp; = new_oids<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>umieszczonej na pocz\u0105tku pliku, gdzie definiuje si\u0119 zmnienne i sekcje. (obszar ten jest zbiorem wpis\u00f3w podobnych do przytoczonego) Nast\u0119pnie koniecznym jest  zdefiniowanie zestawu szablon\u00f3w mo\u017cliwych do wykorzystania przez openssl&#8217;a przy tworzeniu \u017c\u0105da\u0144 certyfikat\u00f3w. Wykonuje si\u0119 to przez przypisanie zarejestrowanemu wcze\u015bniej oid&#8217;owi odpowiedniej nazwy szablonu. Jest to realizowane przy pomocy definicji sekcji nazwanej zgodnie z nazw\u0105 szablonu o nast\u0119puj\u0105cej strukturze:<\/p>\n<div class=\"codecolorer-container text default\" style=\"overflow:auto;white-space:nowrap;width:600px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/><\/div><\/td><td><div class=\"text codecolorer\">[ Template Name ]<br \/>\nCertificateTemplate &nbsp; &nbsp; = ASN1:PRINTABLESTRING:Template Name<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>Przytoczona sekcja definiuje szablon o nazwie &#8220;Template Name&#8221;. Liczba sekcji nie jest ograniczona, nale\u017cy je dla zachowania przejrzysto\u015bci pliku konfiguracyjnego umieszcza\u0107 bezpo\u015brednio po sekcji<\/p>\n<div class=\"codecolorer-container text default\" style=\"overflow:auto;white-space:nowrap;width:600px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/><\/div><\/td><td><div class=\"text codecolorer\">[ req ]<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>kt\u00f3ra odpowiedzialna jest za opcje zwi\u0105zane z \u017c\u0105daniami certyfikatu.<\/p>\n<p>Ostatnim krokiem jest sama generacja klucza prywatnego oraz \u017c\u0105dania certyfikatu po\u015bwiadczaj\u0105cego klucz publiczny z nim skojarzony. Wykonuje si\u0119 to poprzez wydanie komendy:<\/p>\n<div class=\"codecolorer-container text default\" style=\"overflow:auto;white-space:nowrap;width:600px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/><\/div><\/td><td><div class=\"text codecolorer\">openssl genrsa -out RSAkey.pem -des3 1048<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>celem utworzenia klucza, oraz nast\u0119pnie<\/p>\n<div class=\"codecolorer-container text default\" style=\"overflow:auto;white-space:nowrap;width:600px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/><\/div><\/td><td><div class=\"text codecolorer\">openssl req -outform DER -out RSAreq.req -new -key RSAkey.pem -reqexts &quot;Template Name&quot;<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>Jak wida\u0107, poza typowymi argumentami podawanymi do komendy req wyst\u0119puje parametr<\/p>\n<div class=\"codecolorer-container text default\" style=\"overflow:auto;white-space:nowrap;width:600px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/><\/div><\/td><td><div class=\"text codecolorer\">-reqexts<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>kt\u00f3ry odpowiada za wyb\u00f3r odpowiedniego szablonu certyfikatu kt\u00f3ry zostanie wykorzystany przez CA do utworzenia Certyfikatu.<\/p>\n<p>Nast\u0119pnie pozostaje wys\u0142a\u0107 Request do Urz\u0119du Certyfikacji i przetworzy\u0107 odpowied\u017a. Niestety na razie nie znam metody na wykonanie tego prosto spod Linuxa, wi\u0119c nale\u017cy si\u0119 uciec do narz\u0119dzi windows&#8217;owych (np. certreq.exe), ale prace trwaj\u0105.<br \/>\nO efektach b\u0119d\u0119 informowa\u0142 \ud83d\ude42<\/p>","protected":false},"excerpt":{"rendered":"<p>Us\u0142ugi certyfikacyjne Microsoftu dzia\u0142aj\u0105 w oparciu o szablony certyfikatu, w kt\u00f3rych zawarte s\u0105 informacje dotycz\u0105ce przeznaczenia certyfikatu wydanego na jego podstawie, atrybut\u00f3w zabezpiecze\u0144 zwi\u0105zanych z mo\u017cliwo\u015bci\u0105 wydawania i u\u017cytkowania certyfikatu i tym podobnych rzeczy powi\u0105zanych z u\u017cytkowaniem Centrum Certyfikacji w &hellip; <a href=\"https:\/\/wawszczak.pr0.pl\/en\/2009\/04\/16\/szablonowy-certyfikat-dla-pingwina-microsoft-certificates-services\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-45","post","type-post","status-publish","format-standard","hentry","category-bez-kategorii"],"_links":{"self":[{"href":"https:\/\/wawszczak.pr0.pl\/en\/wp-json\/wp\/v2\/posts\/45","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wawszczak.pr0.pl\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wawszczak.pr0.pl\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wawszczak.pr0.pl\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wawszczak.pr0.pl\/en\/wp-json\/wp\/v2\/comments?post=45"}],"version-history":[{"count":4,"href":"https:\/\/wawszczak.pr0.pl\/en\/wp-json\/wp\/v2\/posts\/45\/revisions"}],"predecessor-version":[{"id":48,"href":"https:\/\/wawszczak.pr0.pl\/en\/wp-json\/wp\/v2\/posts\/45\/revisions\/48"}],"wp:attachment":[{"href":"https:\/\/wawszczak.pr0.pl\/en\/wp-json\/wp\/v2\/media?parent=45"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wawszczak.pr0.pl\/en\/wp-json\/wp\/v2\/categories?post=45"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wawszczak.pr0.pl\/en\/wp-json\/wp\/v2\/tags?post=45"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}