XXとしてる
2019年3月20日水曜日
3つの鍵
サイトをHTTPSにする際もちろんOpenSSLで秘密鍵と公開鍵を用意する必要があるので、開発用にオレオレ証明証をとりあえず作成している。 一応開発時にもHTTPSでサーバーを立てているので、なんか鍵を用意するしている。 結構このあたりの知識はあやふやで、公開鍵と秘密鍵の二つ必要だったけ、とOpenSSLで作成している。 ```bash openssl genrsa -out develop.key 4096 openssl rsa -in develop.key -out develop.crt -pubout ``` (開発用なのでAESで暗号化まではしてないです・・・) のだが、これを使ってnode.jsのHTTPSサーバーを立てるとエラーが起きた。 ```bash (node:5695) UnhandledPromiseRejectionWarning: Error: error:0906D06C:PEM routines:PEM_read_bio:no start line ```
鍵がおかしいっていわれているぞ?
ちゃんと公開鍵と秘密鍵の二つ用意しているはずなのでエラーが起きている。 なので検索してみると、公開鍵を設定するのではなくてデジタル証明書を設定する必要があるとのこと
鍵が3種類もあるだと!?
公開鍵だけだとその鍵が本当に使用者のものなのかわからないため、その鍵の所有者を証明するデジタル証明書が必要になる。 デジタル証明書もOpenSSLで作成でき、その際に秘密鍵と公開鍵の二つ指定する必要がある。 ```bash openssl x509 -in ssl/develop.csr -days 565000 -req -signkey ssl/develop.key > ssl/develop.crt ``` このデジタル証明書、一般公開する際は認証局(CA:Certificate Authority)という機関に申請し許可を得たものを使用しなければいけない。 そもそもなんで認証局が必要かというと、通信途中のルータやらなんやらの中で公開鍵の改竄ができてしまうからだ。 なので、セキュリティ的に重要なものには必ず認証局のお墨付きをもらったものを使いましょう。 今回は開発用なのでいわゆるオレオレ証明書を使う。 ## 3つの鍵の効果 秘密鍵と公開鍵、デジタル証明書を使うことで以下の恩恵を受けることができる。 1. 通信内容の暗号化 2. 通信相手の身元証明 あと、改竄があったらわかるという利点もある。 ## 終わりに オレオレ証明書は身元の証明が行えないので、公開するサーバーには決して使わないようにしましょう。 [オレオレ証明書を使いたがる人を例を用いて説得する](https://qiita.com/Sheile/items/dc91128e8918fc823562)
けど、認証局のお墨付きはお金かかるし個人的なちょっとしたものにはこっそりと使う分には多めに見てほしい
(画像は以下のものを使用させていただきました。)
0 件のコメント:
コメントを投稿
次の投稿
前の投稿
ホーム
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿