2015年05月21日
Tweet
参考
Hyper-V 3.0 で Hyper-V レプリカを構成する準備
まず、ドメイン環境にしちゃえばすげーラクだよ。っていうのがあります。
なぜなら、相互にデータを交換するときに、ドメイン環境の証明書が使える(と思う)ので。
証明書は、僕自身あまり知識が無く、苦労する原因の大きな理由の一つです。
また、レプリケーションの方法として、 kerberos 認証(http) と 証明書ベースの認証(https)がありますが、ワークグループ環境では、証明書ベースしか利用できません。
証明書を用意しなければならないわけですが、外部に公開されるわけではないため、簡易な自己署名による証明書を用意することにしました。これは参考サイトにあるとおりです。
証明書については、ルート証明書を作成し、それと紐付いた証明書の作成という、2つの証明書が必要になります。
この証明書は、プライマリ・セカンダリと用意する方が無難なので、ルート証明書が2つ。証明書も2つの、合計4つのファイルを作成する必要があります。
さらに、CN には自身のサーバー名が含まれている必要があります。特に、Workgroup環境では、ホスト名のみだと思いますので、これもまた注意します。(ドメイン名を含めたFQDNじゃなくても問題ありませんでした。)
1. ルート証明書(必ず管理者権限で!)
makecert.exe -pe -n "CN=ルート証明書名" -ss root -sr LocalMachine -sky signature -r "[保存先パス+ファイル名.cer]"
※オプションは以下の通り
-pe:生成された秘密キーをエクスポート可能と見なします。これにより、秘密キーを証明書に組み込むことができるようになります。
-n name: サブジェクトの証明書名を指定します。 この名前は X.500 標準に準拠する必要があります。 最も簡単な方法は、名前の前に CN= を付けて二重引用符で囲んで指定する方法です。たとえば、-n "CN=myName" とします。
-ss store:出力される証明書を格納する、サブジェクトの証明書ストア名を指定します。
-sr location:サブジェクトの証明書ストアの位置を指定します。 location には、currentuser (既定値) または localmachine を指定できます。
-sky keytype: サブジェクトのキーの種類を指定します。signature (キーがデジタル署名に使用されることを示す)、exchange (キーがキー暗号化とキー交換に使用されることを示す)、プロバイダーの種類を表す整数のいずれかを指定する必要があります。既定では、交換キーに 1、署名キーに 2 を渡すことができます。
-r: 自己署名証明書を作成します。
2. クライアント証明書(必ず管理者権限で!)
makecert.exe -pe -n "CN=FQDN(PC名)" -ss my -sr LocalMachine -sky exchange -eku 1.3.6.1.5.5.7.3.1,1.3.6.1.5.5.7.3.2 -in "上記で設定したルート証明書名" -is root -ir LocalMachine -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 "[保存先パス+ファイル名.cer]"
-eku:コンマ区切りの、拡張キー用途オブジェクト識別子 (OID) の一覧を証明書に挿入します。
Microsoft の暗号化に関連するオブジェクト Id
-in name: 発行元の証明書共通名(CN)を指定します。(Specifies the issuer's certificate common name.)
-is store: 発行元の証明書ストア名を指定します。
-ir location: 発行者の証明書ストアの場所を指定します。location は、currentuser (既定値) または localmachine のいずれかです。
-sp provider: サブジェクトの CryptoAPI プロバイダー名を指定します。HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider のレジストリ サブキーで定義されている必要があります。 -sp と -sy の両方が存在する場合、CryptoAPI プロバイダーの種類は、プロバイダーのサブキーの Type 値に対応する必要があります。
-sy type: サブジェクトの CryptoAPI プロバイダーの種類を指定します。HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider Types のレジストリ サブキーで定義されている必要があります。 -sy と -sp の両方が存在する場合、CryptoAPI プロバイダーの名前は、プロバイダーの種類のサブキーの Name 値に対応する必要があります。
上記を作成したら、正しく証明書ストアに保存されていることを確認します。
※確認方法は、参考サイトで!
上記をプライマリ・セカンダリで行います。
このとき、ルート証明書名はプライマリ/セカンダリで異なる値にすること。クライアント証明書の CN=FQDN(PC名) については、同じPC名ってことは無いので、それぞれ異なると思います。
そしてルート証明書は、それぞれのPCにインポートします。
クライアント証明書も同様にそれぞれのPCにインポートします。
またこの状態では証明書の確認が通らないため、レジストリを編集し、証明書の確認を行わないようにします。
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\Replication"
内にある
DisableCertRevocationCheck の値を 1 にします。
これも両方で行います。
FWのポートも通るように設定することでまずは完了です。
ここまで来ればレプリケーションは難しくありません。というか、もんのすごく簡単にできてしまいます。
Hyper-V 3.0 で Hyper-V レプリカを構成する準備
まず、ドメイン環境にしちゃえばすげーラクだよ。っていうのがあります。
なぜなら、相互にデータを交換するときに、ドメイン環境の証明書が使える(と思う)ので。
証明書は、僕自身あまり知識が無く、苦労する原因の大きな理由の一つです。
また、レプリケーションの方法として、 kerberos 認証(http) と 証明書ベースの認証(https)がありますが、ワークグループ環境では、証明書ベースしか利用できません。
証明書を用意しなければならないわけですが、外部に公開されるわけではないため、簡易な自己署名による証明書を用意することにしました。これは参考サイトにあるとおりです。
証明書については、ルート証明書を作成し、それと紐付いた証明書の作成という、2つの証明書が必要になります。
この証明書は、プライマリ・セカンダリと用意する方が無難なので、ルート証明書が2つ。証明書も2つの、合計4つのファイルを作成する必要があります。
さらに、CN には自身のサーバー名が含まれている必要があります。特に、Workgroup環境では、ホスト名のみだと思いますので、これもまた注意します。(ドメイン名を含めたFQDNじゃなくても問題ありませんでした。)
1. ルート証明書(必ず管理者権限で!)
makecert.exe -pe -n "CN=ルート証明書名" -ss root -sr LocalMachine -sky signature -r "[保存先パス+ファイル名.cer]"
※オプションは以下の通り
-pe:生成された秘密キーをエクスポート可能と見なします。これにより、秘密キーを証明書に組み込むことができるようになります。
-n name: サブジェクトの証明書名を指定します。 この名前は X.500 標準に準拠する必要があります。 最も簡単な方法は、名前の前に CN= を付けて二重引用符で囲んで指定する方法です。たとえば、-n "CN=myName" とします。
-ss store:出力される証明書を格納する、サブジェクトの証明書ストア名を指定します。
-sr location:サブジェクトの証明書ストアの位置を指定します。 location には、currentuser (既定値) または localmachine を指定できます。
-sky keytype: サブジェクトのキーの種類を指定します。signature (キーがデジタル署名に使用されることを示す)、exchange (キーがキー暗号化とキー交換に使用されることを示す)、プロバイダーの種類を表す整数のいずれかを指定する必要があります。既定では、交換キーに 1、署名キーに 2 を渡すことができます。
-r: 自己署名証明書を作成します。
2. クライアント証明書(必ず管理者権限で!)
makecert.exe -pe -n "CN=FQDN(PC名)" -ss my -sr LocalMachine -sky exchange -eku 1.3.6.1.5.5.7.3.1,1.3.6.1.5.5.7.3.2 -in "上記で設定したルート証明書名" -is root -ir LocalMachine -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 "[保存先パス+ファイル名.cer]"
-eku:コンマ区切りの、拡張キー用途オブジェクト識別子 (OID) の一覧を証明書に挿入します。
Microsoft の暗号化に関連するオブジェクト Id
-in name: 発行元の証明書共通名(CN)を指定します。(Specifies the issuer's certificate common name.)
-is store: 発行元の証明書ストア名を指定します。
-ir location: 発行者の証明書ストアの場所を指定します。location は、currentuser (既定値) または localmachine のいずれかです。
-sp provider: サブジェクトの CryptoAPI プロバイダー名を指定します。HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider のレジストリ サブキーで定義されている必要があります。 -sp と -sy の両方が存在する場合、CryptoAPI プロバイダーの種類は、プロバイダーのサブキーの Type 値に対応する必要があります。
-sy type: サブジェクトの CryptoAPI プロバイダーの種類を指定します。HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider Types のレジストリ サブキーで定義されている必要があります。 -sy と -sp の両方が存在する場合、CryptoAPI プロバイダーの名前は、プロバイダーの種類のサブキーの Name 値に対応する必要があります。
上記を作成したら、正しく証明書ストアに保存されていることを確認します。
※確認方法は、参考サイトで!
上記をプライマリ・セカンダリで行います。
このとき、ルート証明書名はプライマリ/セカンダリで異なる値にすること。クライアント証明書の CN=FQDN(PC名) については、同じPC名ってことは無いので、それぞれ異なると思います。
そしてルート証明書は、それぞれのPCにインポートします。
クライアント証明書も同様にそれぞれのPCにインポートします。
またこの状態では証明書の確認が通らないため、レジストリを編集し、証明書の確認を行わないようにします。
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\Replication"
内にある
DisableCertRevocationCheck の値を 1 にします。
これも両方で行います。
FWのポートも通るように設定することでまずは完了です。
ここまで来ればレプリケーションは難しくありません。というか、もんのすごく簡単にできてしまいます。