URAMIRAIKAN

1020のなれの果て (since 2005.6.19)

PowerShellでTLS1.2や自己証明書への対応

 わりと今さらな話題なのですが、ちょっとど忘れしてしまったときに探すのが面倒いのでメモです。

 最近はのHTTPSではTLS1.1以前の古いプロトコルが無効化され、実質的にTLS1.2しか使えないケースが多々あります。
 これに対してPowerShellの"Invoke-RestMethod"でアクセスしようとするとバージョンによって拒否されるので、その対策が必要となります。
 また、ローカル環境では自己証明書が使われる機会も多いので、その対策と合わせたものをスニペット的に使っています。

 PowerShellがデフォルトで対応しているプロトコルについてはOSのバージョンによるのかと思っています。Windows 7ではデフォルトでSSLv3とTLS1.0に対応していますが、これはPowerShell 5.1にアップデートしても変わりません。一方で最新のWindows 10 (1809) では、デフォルトでTLS1.0、TLS1.1、TLS1.2に対応しているようです。

# Windows 7の場合
PS C:\> [Net.ServicePointManager]::SecurityProtocol
Ssl3, Tls

# Windows 10の場合
PS C:\> [Net.ServicePointManager]::SecurityProtocol
Tls, Tls11, Tls12

 というわけで、TLS1.2が有効になっていない場合に"Invoke-RestMethod"等でTLS1.2を使うためには、以下の行を追加する必要があります。

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

 次に自己証明書を使う場合ですが、デフォルトだとやはりエラーになるので下記の文を追加します。

Add-Type @" using System.Net; using System.Security.Cryptography.X509Certificates; public class TrustAllCertsPolicy : ICertificatePolicy { public bool CheckValidationResult( ServicePoint srvPoint, X509Certificate certificate, WebRequest request, int certificateProblem) { return true; } } "@ [System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy

 社内で使うスクリプトだと、この2つは概ねセットで使うことが多いですね。

【参考】


    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

プロフィール

1020@管理人

都内を彷徨っているインフラエンジニアとかいう雑用係。いつだって眠い…。

最近のつぶやき

@umkn1020 (07/03-18:57)
RT @kamo_hiroyasu: 「人口の1割は複文が処理できないのだから、そのつもりで行動しろ」と助言することが時々あるのですが、「何もしなければ、42万人死亡する」を「42万人死亡する」と誤読して「外した」と煽る人がわらわらと湧いてきたことで、説得力が増しました。
@umkn1020 (07/03-18:49)
RT @taijijiji: 外資企業が日本市場でhiring難しいとは聞いていましたがこれほどとは。。日本人の転職の心理的ハードルの高さ、英語ポジションへの苦手意識が伺える。。英語は実質的な語学スキルよりも「やっていける自信がない」「怖い」「どうせ落とされる」というメンタリテ…
@umkn1020 (07/03-13:03)
RT @yuutosi_hiyuu: 声だして笑った https://t.co/EjqAUuT3z0
@umkn1020 (07/02-16:02)
Smart LifeでIFTTT使えなくなっていたのか…
@umkn1020 (07/01-17:23)
RT @rioriost: だーかーらー、HAクラスタをすぐ組もうとしない!w オンプレの発想をそのまま持ってくるんじゃなく、クラウドに合ったやり方を学びましょうよ。 できるよ、IaaSでHAクラスタも組めるよ。 でも、スタンバイノードのコストを払い続けるの、なんかおかし…

エントリーリスト

カテゴリーリスト

タグ