Немного про сертификаты… или как починить постоянный redirect owa в Exchnage


ssl

Не все знают, что мощные и современные продукты, такие, как S4B/Lync, Exchnage 2013/16, ADFS 2012R2, и даже другие продукты (например, VMware View) не поддерживают сертификаты CNG.

Screenshot_4

В Lync ошибка может быть при назначении сертификатов Error: An error occurred: “System.Security.Cryptography.CryptographicException” “The buffer supplied to a function was to small””

В TMG при назначении сертификата на листнер, можете получить ошибку “Incorrect key type”

В Exchange мы получим бесконечный редирект в OWA и ECP при использовании FBA.

Но, как показала практика, администраторы серверов и слыхом не слыхивали, что вместо FBA можно использовать SSO.

VMware Horizon View тоже откажется пускать пользователей после смены сертификата на новый, v3.

Как же проверить, все ли с сертификатом в порядке, особенно, если запрашивали его не Вы, а другой человечек, который мог что-нибудь напутать при создании CSR.

Проверяем вывод команды Certutil.exe -v -store my <thumbprint>, и берем отпечаток нашего сертификата.

Смотрим вывод строки Provider. Если вывод «Provider = Microsoft Software Key Storage Provider», то это плохо. И работать такой сертификат не будет.

Должно быть “Microsoft Enhanced Cryptographic Provider v1.0” либо “Microsoft RSA SChannel Cryptographic Provider”.

Рассмотрим варианты, как бороть проблему. Вариант первый- читать гайды по запросу сертификатов для продукта, где указывается, КАК и почему надо делать. Например, в гайдах Exchnage или Lync администратору зачем-то дают готовый шаблон, который остается скопировать в записную книжку, и администратор этой проблемы если он не боится powershell даже не увидит. Сделайте выводы, если у вас есть проблема с сертификатами, подумайте о ее первопричинах. Возможно, не во всем виноват проклятый Майкрософт, который не поддерживает в данных продуктах CNG, а использует legacy CryptoAPI, работающий на старых добрых Cryptographic Service Providers (CSP). Поэтому- просто ПРАВИЛЬНО перезапросите сертификат, используя предложенную документацию.

Вариант второй, когда не хочется или не можется по какой-либо причине делать повторный запрос CSR.

Ну, например, это не бесплатно, и это не наш метод!

Наш метод такой: Качаем openssl и экспортируем наш проблемный сертификат в pfx , либо берем готовый.

Открываем командную строку с повышенными привилегиями, переходим в каталог \openssl\bin.

Конвертируем наш .pfx в .pem
openssl.exe pkcs12 -in certificate.pfx -out certificate.pem -nodes

Затем конвертируем обратно из .pem в  .pfx
openssl.exe pkcs12 -export -in certificate.pem -out new_certificate.pfx

Cамые внимательные читатели знают, что можно использовать еще и certutil:

certutil -csp «Microsoft RSA SChannel Cryptographic Provider» -importpfx <CertificateFilename>

На сегодня все, любите powershell, читайте документацию по продуктам.

Ссылки по теме:

https://blogs.perficient.com/microsoft/2013/12/lync-support-for-cryptoaping-certificates/

https://anotherexchangeblog.wordpress.com/tag/importpfx-command-failed-0x80090029/

http://blogs.technet.com/b/jasonsla/archive/2015/01/15/the-owa-and-ecp-fba-redirect-loop.aspx

http://blog.vaglid.net/?p=4

Реклама

Автоматически добавляем почтовый ящик и sip адрес для пользователей


emie

Вот такой вот простой скрипт, запускающийся по расписанию раз, скажем в полчаса,  поможет на пути к автоматизации процесса создания учетных записей на предприятии. 🙂

Скрипт смотрит в определенную «Prestaged» OU, из которой забирает пользователей, и добавляет их в пул на Lync сервере, не забывая добавить им почтовый ящик на Exchange. Модифицируйте, как нравится- определенный пул, определенная база и т.д. Пользователи в целевом организационном подразделении могут создаваться совершенно разными путями, переносом, созданием, миграцией и т.п., после выполнения действий скрипт отсылает уведомление:

 

#Ipmo EXCHANGE
$SessionOWA = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://exchangeserver/PowerShell/ -Authentication Kerberos
Import-PSSession $SessionOWA
#Ipmo Lync
$lyncOptions = New-PSSessionOption -SkipRevocationCheck -SkipCACheck -SkipCNCheck
$lync = New-PSSession -ConnectionUri https://lync01/ocspowershell `
-SessionOption $lyncOptions `
-Authentication NegotiateWithImplicitCredential
Import-PSSession $lync
# определяем Lync pool сервер.
$LyncPool = «lync01»
# Контейнер с пользователями, откуда мы будем забирать объекты
$Ous = «OU=Prestaged,OU=Users and Contacts,DC=mydomen,DC=ru»
# SMTP server.
$smtpServer=»smtp.mydomen.ru»
$OUUsers = $null
$enabledUsers = $null

ipmo ac*
#Включаем ящики пользователям.

$users =  Get-ADUser -LDAPFilter «(!(mail=*))» -resultSetSize $null  -searchBase $Ous
foreach($user in $users)
{
Enable-Mailbox -Identity $user.SamAccountName -Database MDB02   -ErrorAction SilentlyContinue
}
# Подождем репликации атрибутов
Start-Sleep 30
# Получим список всех пользователей с электронным адресом, не заблокированных в Аctive directory и не имеющих sip адреса
$OUUsers = $OUs | Foreach {Get-CsAdUser -Filter {Enabled -ne $True} -OU $_ | Where-Object {$_.UserAccountControl -notlike «*AccountDisabled*»} | Where-Object {$_.WindowsEmailAddress -ne «»} | Where-Object {$_.SIPAddress -eq «»} };
if ($OUUsers -ne $null) {
$OUUsers | Foreach-Object {
Enable-CsUser -Identity $_.UserPrincipalName -RegistrarPool $LyncPool -SipAddressType EmailAddress
$EnabledUsers += $_.Name
$EnabledUsers += «, »
}

# send an email to notify HD
#Конвертируем кодировку в utf8
$enc = New-Object System.Text.utf8encoding
$subject= «Users enabled for Lync,EXCHANGE»
$body= @»
<p>Dear HelpDesk,</p>
The following user(s) have been enabled for Lync and Exchange</p>
</p>
<b>$EnabledUsers</b></p>
</p>

If you have any questions, you can contact the UC Team.</p>
(Tel: 2117 / Mail: helpdesk@domen.ru)</p>
</p>
Kind regards,</p>
UC team</p>
«@
Send-Mailmessage -smtpServer $smtpServer -Encoding $enc -from «LyncTeam@domen.ru» -to «helpdesk@domen.ru» -subject $subject -body $body -BodyAsHtml

}

Управляем Exchange 2010 и Lync 2010 из одной сессии PowerShell


ex

В новом и интересном PowerShell 3 есть замечательная штука- автоматическая загрузка модулей. Теперь, если вы забыли загрузить модуль перед выполнением командлета, консоль не будет вас ругать, а просто автоматически загрузит необходимый модуль. Правда, это сказывается на скорости выполнения скрипта, поэтому, конечно нужные модули на каждый день лучше подгружать сразу в профиль. А как быть простым парням с  PowerShell версии 2? Читать далее

Конфигурируем статус клиентов Lync 2010 и Office 365


Для управляемой среды

Как включить статус «Невидимый» (Appear Offline) в Lync 2010?

Этот статус был по умолчанию доступен в OCS 2007, но в Lync 2010 по умолчанию он выключен.. Для on-premises сред статусом клиента можно легко управлять с помощью Lync Management Shell. Существует  параметр EnableAppearOffline, управляющий конфигурационными данными клиентов определенными  с помощью серверной политики,  который загружается для клиентов после входа  пользователя в систему. Вы можете включить появление сообщения статуса для всех своих клиентов путем изменения политики для клиентов Lync  одной строчой:

Get-CSClientPolicy | Set-CSClientPolicy -EnableAppearOffline $true

Несложно. Но придется перезагрузить клиента для применения изменений.

А как насчет Lync Online ? Читать далее