Инсталиране Windows 8 Release Preview във виртуална машина

При инсталация на Windows 8 Release Preview на Virtual Box понякога се получава следното:

“Your PC needs to restart”

При Virtual PC резултатът е за съжаление същия. След известно четене в Google видях, че Windows 8 Release Preview има следните изисквания към процесора:

Physical Address Extension (PAE), NX, and SSE2

 

За първото и последното няма какво да се направи, но второто (NX, Execute Disabled) обикновено е опция в BIOS-a. Обнадежден проверих дали това е проблемът при мене, но уви – беше включено. На други места предлагаха от Performance Options->Data Execution Prevention->Turn On DEP for all programs.

При мене и това не се оказа успешно, но в крайна сметка това което имаше резултат е инсталация във VMWare Player (вероятно в комбинация с горните).

Apache и SSL сертификати

Вече съм писал веднъж как се инсталират SSL сертификати под различни web сървъри.

В случай, че имате Apache 2 сървър и SSL частен ключ с парола при всяко стартиране на Apache ще излиза съобщение като това:

 

Това е secure, но със сигурност inconvenient в повечето случаи. Има (поне) два варианта за решение:

 

1. Може да се махне паролата на сертификата като се използва информацията от bloga на Chris Schuld и OpenSSL

Не съм го пробвал, но би трябвало да работи според коментарите

2. Автоматично да се извлича паролата от stdin с допълнително приложение – информацията намерих във форума на LinuxQuestions

В httpd-ssl.conf се подменя начина да запитване за парола от bultin на изпълним файл

 

 

а самия изпълним файл е нещо от сорта на (Apache трябва да има права да изпълни файла):

 

 

И двата метода намаляват сигурността на частния ключ – в единия случай премахваме паролата от файла, в другия предоставяме паролата в относително plain text. Въпрос на избор 🙂

(Java) Sun MSCapi provider на x64 Windows

В Java 6 е добавен удобен и лесен начин за достъп до сертификатите от Windows Crypto store чрез

 

За съжаление горното работи само, ако JRE е 32 битово. Ако JRE 64 битово, то SunMSCAPI не се поддържа. Което е най-малкото странно. Има няколко thread-a по въпроса в интернет например тук: http://forums.oracle.com/forums/thread.jspa?threadID=1526024

 

Общо взето това, което предлагат е да се прекомпилира sunmscapi.dll и да се постави в bin директория на JRE

Source-a на OpenJDK6 се сваля лесно и бързо, за съжаление компилацията на цялото JDK е доста времеотнемаща задача, а ако е нужно само да се прекомпилира sunmscapi.dll няма нужда да се прави. Може да се съкрати до следните стъпки:

  1. Сваля се source-a на OpenJDK 6 от тук
  2. Изтегля се x64 Windows SDK април 2005 от тук
  3. Компилация на sunmscapi.dll
  4. Конфигуриране

 

 

Най-удачно е Crypt32.lib, Advapi32.liv, bufferoverflowU.lib в съответната папка от x64 битовите папки на машината

Горната команда ще генерира 64 битов sunmscapi.dll, като cl.exe e Microsoft-ския компилатор за AMD64. DLL-а се копира в bin директорията на JRE.

В Jre6libsecurityjava.security се добавя следния ред в секцията за security providers:

 

В Jre6libext се копира sunmscapi.jar от друга инсталация на JRE6 (32 bit). Може и да се компилира директно от кода, но е доста по-лесно да се копира от друга 32 битова JRE.

SSL Certificate за IIS/ Apache/ Tomcat

Как да си инсталираме SSL сертификата на уеб сървърите. Още повече, ако сертификатът е wildcard, сървърите са различни и го имаме като двойак частен ключ + сертификат

Нека за по-ясно това са файловете, които получаваме от CA:

private.key – частен ключ

certificate.crt – сертификат

и двата файла са в PEM формат. Първа стъпка е да инсталираме OpenSSL за нашата OS/ платформа от www.openssl.org

IIS

 

 

Въвежда се парола за резултатния сертификат и готово! pfx файла може да се инпортира в IIS и да се изпозлва като SSL сървърен сертификат

Apache Tomcat 5.0

В зависимост от версията на Tomcat се поддържа Java Key Store (JKS) или PKCS12. Аз не успях да подкарам директно pfx файла, затова се принудих да импортирам в JKS. Инструкции за това може да се намерят например на http://www.agentbob.info/agentbob/79-AB.html

Накратко – keytool инструмента не може да импортира директно частния ключ и трябва да се направи програмно. Първо конвертираме сертификатите в DER формат отново с OpenSSL

Сваля се следния файл ImportKey.java и се компилира с Java 1.5+. Следваща стъпк а е да се изпълни следното:

Ако сме под Windows файлът се създава в папката на текущия потребител, например: C:UsersAdministratorkeystore.ImportKey. В конфигурацията на Tomcat 5.0 (server.xml) трябва да се доави Connector секция, за да работи 443-ти порт като https

 

Рестартира се Tomcat и вече всичко трябва да работи нормално

Tomcat 7.0

Конфигурирането е по-лесно и се указва директно частен ключ и сертификат. Използва се същата схема както и в Apache 2

Tomcat трябва да се рестартира, за да влязат промените в сила.

Apache 2

Конфигурацията тук е най-лесна. Само се указва частния ключ и сертификата в httpd.conf (или ssl.conf) и се пуска SSL поддръжка

SSLCertificateFile (сертификат) и SSLCertificateKeyFile (частен ключ)

Ако има intermediate CA, то пътя до него се записва в SSLCertificateChainFile

След това е нужно да се рестартира Apache, например с

 

Генериране на частен ключ от PFX и премахване на паролата

 

 

 

Authentication and Access Control Diagnostics за IIS

Всеки път като се боря с проблеми с IIS съм искал да имам инструмент като този: Authentication and Access Control Diagnostics

Честно казано – продължавам да искам, защото този е само x86 и е правен в тъмните векове на IIS 5.0 и 6.0, но предоставя добра информация и за IIS 7.0. Базови неща като проблеми с достъпа, потребители и authentication (аутентикация ли се превежда това?). Как досега не съм се натъквал на това? Мистерия…

Мигриране от Blogger към BlogEngine.net

След като реших да сменя адреса и engine-a зад блога остана задачата да прехвърля стартите постове към blogEngine. Вариант е да се въведат на ръка като текст, но някак си идеята не ми харесваше. Реших, че ще търся по-добрият начин. Не непременно по-бързия :))

BlogEngine.net поддържа импорт от BlogML формат, а през clickOnce приложение включено в самата дистрибуция (много добра идея!) може да се импортира и от RSS feed.

Първото нещо, което направих разбира се беше да потърся в google. Това, което излезе е много добра  статия как да прехвърлим постовете от Blogger v BlogML формат използвайки powershell. За съжаление, това не сработи в моя случай поради грешка в authorUri, а в последствие и поради други грешки.

Вторият опит беше да създам блог в WordPress.com, в който съвсем лесно може да се изтеглят постовете, коментарите и картинките от Blogger.

Дотук добре. Следващата стъпка беше да използвам BlogImporter-a на BlogEngine.net и да импортирам rss-a от WordPress блога. Това сработи и бях много шастлив до момента, до който не видях, че повечето постове са съкратени до няколко реда и имат Continue Reading в края, което сочеше … към wordpress блога. Много неприятно развитие…. Изглежда WordPress след версия 2.8 (май) в RSS-a подава само част от информацията (независимо от настройките).

Трети опит (и този път успешен)

Регистрирах блога във FeedBurner и това вече реши (почти) всичките ми неприятности. Импортът мина безпроблемно и се появиха всички постове. Без коментарите. И без снимките. Тоест – със снимките, но те сочеха към старите линкове. Но всичко останало работеше – включително датите 🙂

.NET 3.5 SP1 Bootstrapper package във Visual Studio 2008 SP1

В долния документ има секция 2.3.1.1, в който е описано как да добавим .NET 3.5 SP1 като bootstrapper в ClickOnce и Setup проекти:

http://download.microsoft.com/download/A/2/8/A2807F78-C861-4B66-9B31-9205C3F22252/VS2008SP1Readme.htm

Silverlight.js под Firefox 3

При приложение, което използва Silverlight 1.0 (Silverlight.js) под Firefox 3 се стига до неприятния момент винаги да показва, че Silverlight не е инсталиран и трябва да се изтегли наново.
Разбира се, повторното изтегляне и инсталиране не води до абсолютно никакъв резултат (освен загубено време).
Проблемът се оказа, че “стария” Silverlight 1.0 няма понятие за Firefox 3 като browser, поради което винаги се изкарва съобщение, че е нужна повторна инсталация.

Решението и причините са описани тук, като общо взето всичко се свежда до подмяна на Silverlight.js файла с по-нова версия (такава от 2.0), която може да се изтегли от http://code.msdn.microsoft.com/silverlightjs

Като цяло, не виждам причина да се използва Silverlight 1.0 за ново RIA приложение, при положение че Silverlight 2 е с много повече възможности и превъзхожда 1.0 в почти всяко едно направление. Но при наличие на неработещо 1.0 приложение, което трябва да се подкара, горното е повече от добре дошло.

Disable UAC под Vista през командна линия

UAC е добра функция на Windows Vista, но в някои случаи изключването е най-добрия вариант за решаване на проблеми със съвместимостта със стари приложения. И не само…
По принцип – изключването не представлява проблем – минава се през Control Panel и всичко е наред. Дотук добре, но това е процес, който иска крайния потребител да извърши някаква операция – нещо, което не винаги е тривиална задача.
Добре, че има msconfig – там в таб Tools има Disable UACentry, което изпълнява следната команда:

C:WindowsSystem32cmd.exe /k %windir%System32reg.exe ADD HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem /v EnableLUA /t REG_DWORD /d 0 /f

съответно за да се пусне UAC е необходимо да се изпълни:

C:WindowsSystem32cmd.exe /k %windir%System32reg.exe ADD HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem /v EnableLUA /t REG_DWORD /d 1 /f

Това вече удобно може да се изпълнява без да е необходимо крайния потребител да прави това или онова 🙂