認証局を作って遊んでみる
とあるOSSのWebシステムは複数のAPIサーバがお話しながら機能を提供する。この時、httpは認められずhttpsだけがサポートされるという状態であった。 オレオレ証明書を用いてやればいい。OpenSSLがあれば可能さ。。そう思っていた時期が僕にもありました 実際にはうまくいかずはまる結果に・・・
そこで、ありものパッケージを使って、自己認証局を作ったほうがうまくいくのでは? と考え実行した結果、難なく実現できたのでその手順と得た知識をまとめようと思います。
記事構成
こんな記事構成で進めてい効く予定です。お楽しみに
No. | 記事 | 概要 |
---|---|---|
1. | その①:検証環境を用意しよう | NGINXを用意してHTTPS待ち受けを開始するまで |
2. | その②:HTTPS(HTTP over SSL/TSL)の概要とCAの役割 | HTTPSってなんだっけ?のおさらいとCAの役割 |
3. | その③:CAを作ってみよう | Easy-rsaを使った認証局の構築(=設定) |
4. | その④:Webサーバに証明書を導入してみkよう。 | 3の認証局で作ったサーバ証明書を用いてHTTPS通信をしてみる。 |
環境準備
論理構成
今回「認証局=(CA)」が発行する証明書を使ってHTTPSをやってみようというテーマなので、次の図に示すような登場人物が出てきます。
Blowser
HTTPサーバと通信をして何らかの情報をやり取りする。例えば、決済データなどなど
HTTP Server
Blowserと通信をして何らかの情報をやり取りする。また、クライアントからの情報を元に何らかの処理をする。(今回は、「通信」にフォーカスしています)
認証局
通信相手の身元を保証する。「通信レベル」ってのが大事
今回の物理構成
本来、前述の構成にして一つ一つ別の仮想サーバにするのが理想なんでしょうが、リソースの無駄なので認証局とHTTPサーバを同一の仮想マシンに実装します。
導入ソフト一覧
No. | 実装箇所 | 導入ソフト | 概要 |
---|---|---|---|
1. | WSL | Ubuntu 22.04 | WSL上で動作するLinuxディストリビューション |
2. | WSL | NGINX | Webサーバ |
3. | WSL | easy-rsa | CAユーティリティ |
1. OS
この記事を参照して導入する
2. Nginx
1.aptのリポジトリ情報を最新化する
sudo apt-get update
2.nginxを導入する
sudo apt-get install -y nginx
3.疎通確認する
curl http://localhost/
<コマンド実行結果>
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
3.easy-rsa
1.aptのリポジトリ情報を最新化する
(すでにnginx導入時にやっていれば不要)
sudo apt-get update
2.easy-rsaを導入する
sudo apt-get install -y easy-rsa
以上で必要ソフトウェアの導入が終了しました
疎通確認
すでにnginxは起動していますので(インストール時にサービスとして起動している)ホストOS(Windows)でブラウザを立ち上げて、接続してみましょう
まずはubuntuで以下のコマンドでIPアドレスを確認します。
ip address show
出力される画面から192で始まるIPアドレスを確認します。
このアドレスをそのままブラウザのアドレス欄に入力しますhttp://192.168.55.42(この場合)
ここまでで、各種ソフトウェアの追加作業は終了です。
次回はまずTSL/SSLの概要の説明をしたいと思います。