Amazon WorkSpacesにオレオレ証明書(自己証明書)を登録する
はい皆さんこんにちは
結論から言うとこの記事は
WorkSpacesで認証済みの端末からアクセスを許可するために
証明書を作って登録する話です。
詳細
信頼されたデバイスへの WorkSpaces アクセスを制限する
https://docs.aws.amazon.com/ja_jp/workspaces/latest/adminguide/trusted-devices.html
クライアントアプリケーションはこちら
https://clients.amazonworkspaces.com/
環境:
AmazonWorkSpaces
クライアント:WIN10
サーバ:WIN10
接続方式:クライアントアプリケーション
証明書を作る環境:CentOS7(他のLINUXでもOKです)
注意事項:
接続方式が他のデバイス(WEB ACCESSとか)の場合、証明書でアクセス制限できません
なのでDirectoriesの[Actions]>[Update Details]>[Access Control Options]>[Other Platforms]で他のデバイスが無効になっている前提で話を進めます。
##CA証明書をLINUXサーバで作る
LINUXサーバはyumでパッケージがインストールできる環境なら何でもいいと思います。
今回は有効期限を20年で作ります。よって2040年まで使える証明書になります。
基本root権限でいきます。
rpm -qa | grep openssl
⇒opensslが入って無ければ入れましょう。
yum update -y
rpm -qa | grep openssl
mkdir -p /etc/pki/workspaces/newcerts cd /etc/pki/workspaces/ echo "01" | sudo tee serial touch index.txt cp /etc/pki/tls/openssl.cnf openssl_ca.cnf
vi openssl_ca.cnf
[ CA_default ]の箇所を変更
dir = /etc/pki/workspaces
[ v3_ca ]の箇所でコメントアウト(頭にシャープ追加)
#authorityKeyIdentifier=keyid:always,issuer
[ v3_ca ]の箇所で追記
keyUsage = digitalSignature,cRLSign,keyCertSign
保存する。(SHIFT押しながらZZ)
openssl req -new -x509 -keyout cakey.pem -out cacert.pem -days 7300 -config openssl_ca.cnf
入力はこんな感じで
Enter PEM pass phrase:1111
Verifying - Enter PEM pass phrase:1111
※好きなパスワードにしてください
Country Name (2 letter code) [XX]:JP
State or Province Name (full name) []:Tokyo
Locality Name (eg, city) [Default City]:Mita
Organization Name (eg, company) [Default Company Ltd]:ramen jiro
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:yourname.com
Email Address []:
※yourname.comは実際のサーバ名に変えてください。WORKSPACESで使う分にはこのままでもいいかもですが・・
※何も書いてないところはエンターで進めます
##クライアント証明書をLINUXサーバで作る
cd /etc/pki/workspaces/ mkdir Client cd Client/ openssl genrsa -out client.key 2048
openssl req -new -key client.key -out client.csr -sha256
入力はこんな感じで
Country Name (2 letter code) [XX]:JP
State or Province Name (full name) []:Tokyo
Locality Name (eg, city) [Default City]:Mita
Organization Name (eg, company) [Default Company Ltd]:ramen jiro
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:yourname.com
※yourname.comは実際のサーバ名に変えてください。WORKSPACESで使う分にはこのままでもいいかもですが・・
※何も書いてないところはエンターで進めます
cp /etc/pki/tls/openssl.cnf ./openssl_client.cnf
vi openssl_client.cnf
[ CA_default ]の箇所で変更
dir = /etc/pki/workspaces
private_key = $dir/cakey.pem
[ usr_cert ]の箇所で追記
keyUsage = critical,nonRepudiation, digitalSignature, keyEncipherment,dataEncipherment
[ usr_cert ]の箇所でコメントアウト(頭にシャープ追加)
#nsComment = "OpenSSL Generated Certificate"
[ usr_cert ]の箇所で追記
extendedKeyUsage = clientAuth
保存する。(SHIFT押しながらZZ)
mkdir -p /etc/pki/workspaces/newcerts openssl ca -config openssl_client.cnf -out client.crt -in client.csr -days 7300
Enter pass phrase for /etc/pki/workspaces/cakey.pem:
と聞かれたら設定したパスワードを入れます。この手順だと1111
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
openssl pkcs12 -export -in client.crt -inkey client.key -name yourname.com -certfile ../cacert.pem -out workspaces.p12
※yourname.comの箇所は変えてください
Enter Export Password:
Verifying - Enter Export Password:
⇒クライアントにインストールする時に必要なパスワードを設定します(エンターで省略可能)
##うまく動かないとき
途中で間違った場合は、/etc/pki/workspacesから削除して最初からやり直した方が早いと思います。
##LINUXサーバからローカルにファイル転送
出来たファイルをWIN10に持ってくるのですが、パーミッションがどうたらと言われるので最初から圧縮しておきます。
cd /etc/pki tar cvf workspaces.tar workspaces
このworkspaces.tarをFTPなりでローカルに持ってきて解凍します。
##WorkSpacesに登録する
必要なファイルは以下になります。
cacert.pem
⇒AWSのDirectoriesの[Actions]>[Update Details]>[Access Control Options]に登録するファイルです。中身はこんな感じです。
-----BEGIN CERTIFICATE-----
YASAIMASHI
NINNIKU
ABURA
KARAME
-----END CERTIFICATE-----
workspaces.p12
⇒ダブルクリックすると証明書の登録ウィザードが立ち上がるのでデフォルトでインストールします。
パスワードを入れる欄が出てきますが、設定していない場合はスルーでOKです。
確認は、ユーザー証明書の管理(certmgr.msc)>個人>証明書 の中を見ます。
あとは冒頭のクライアントアプリで接続するだけです。
##感想
証明書の作り方とかは結構ネットにあるのですが、
WorkSpacesと絡めたものがあまりなかったので投稿しました。
ありがとうございました。