18
25

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

SSL/TLSや公開鍵暗号や証明書周りのメモ

Last updated at Posted at 2018-03-10

はじめに

間違ってる可能性が(ry
質問やマサカリがあれば、コメントか@miyagaw61までお願いします。

SSL/TLSの概念

秘/公: Webサーバーの秘密鍵/公開鍵
CA秘/CA公: 中間CAの秘密鍵/公開鍵
ルート公: ルートCAの公開鍵
共: Webサーバーとクライアントの共通鍵

を意味してます。

「情報」というのは「Webサーバーの情報」です。
その情報を認証局(CA)が実在するか確認し、認められた場合に証明書が発行される仕組みになっています。

共通鍵の生成方法は他にもあるらしい...?

E7BEC692-598B-4985-8ED8-2285E684DA12.jpeg

sshで使用する鍵の作成方法

公開鍵・秘密鍵の作成

ssh-keygen -t rsa -b 4096 -C [メールアドレス]

パスを聞かれるので絶対値で指定しましょう。
この方法では、公開鍵がssh専用になります。

sshで使用しない鍵の作成方法

秘密鍵作成

openssl genrsa 2048 > [秘密鍵]

秘密鍵のDER化

PEMは内部にDERがある説?(http://bearmini.hatenablog.com/entry/2014/02/05/143510)

・パスワード無し

openssl rsa -inform PEM -outform DER -in [秘密鍵] -out [秘密鍵.der]

・パスワードあり

openssl rsa -inform PEM -outform DER -in [秘密鍵] -out [秘密鍵.der] -passin pass:[パスワード]

・失敗パターン

なぜかわかりませんが失敗しました。

openssl x509 -outform DER -in [秘密鍵] -out [秘密鍵.der]
openssl x509 -outform DER -in [秘密鍵] -out [秘密鍵.der] -passin pass:[パスワード]

TIPS:
x509とは、pemを表します。
他にも、pkcs[n]サブコマンドもあります。

公開鍵の作成

・シンプル(PEM)

openssl rsa -in [秘密鍵] -pubout -out [公開鍵]

・形式指定

openssl rsa -in [秘密鍵] -pubout -out [公開鍵] -outform [DER/NET/PEM(DEFAULT)]

・パスワード設定

openssl rsa -in [秘密鍵] -pubout -out [公開鍵] -passin pass:[パスワード]

SSL証明書(crtファイル)作成

CSRを作成するときに色々聞かれますが、何も入力せずにエンターを押すとデフォルト値が使われます。
が、Common Name(FQDN)くらいはちゃんと入力しとけという記述が多く見受けられました。

openssl req -new -key [秘密鍵] > [CSR].csr
openssl x509 -days 3650 -req -signkey [秘密鍵] < [CSR].csr > [SSL証明書].crt

p12ファイル作成

p12(pkcs12)とは、公開鍵(証明書)や秘密鍵をまとめるためのフォーマットの一つです。

openssl pkcs12 -export -in [sslサーバ証明書] -inkey [秘密鍵] -certfile [中間CA証明書] -out [p12ファイル]

-certfileオプションは付けなくてもできました(というかオプション無しでしか確認できてません)。

openssl pkcs12 -export -in [sslサーバ証明書] -inkey [秘密鍵] -out [p12ファイル]

秘密鍵だけをまとめる場合はこちら

openssl pkcs12 -export -nocerts -inkey [秘密鍵] -out [p12ファイル]

p12ファイルをDERエンコード

という記述は見つけたがサイトによってはDERではなくCERといっているところもあったり、そもそもオプション名的にderじゃなくてdesなのでは?という感じなので、信憑性は低いです。

openssl pkcs12 -in [p12ファイル]  -des -out [DER形式のp12ファイル]

参考

お前らのSSH Keysの作り方は間違っている - Qiita ( archive )
PKCS #12 個人情報交換ファイルフォーマットについて - Qiita ( archive )
RSA鍵、証明書のファイルフォーマットについて - Qiita ( archive )
OpenSSLコマンドによる公開鍵暗号、電子署名の方法 - Qiita ( archive )
SSLサーバー証明書 : 証明書ファイルの種類とopensslでの変換方法 | DigiCert ( archive )
OpenSSL で RSA の秘密鍵を作成する方法 | WEB ARCH LABO ( archive )
opensslコマンドtips — ありえるえりあ ( archive )
OpenSSLコマンドの備忘録 - Qiita ( archive )
無料でHTTPS化できる「Let's Encrypt」をやってみた ※install.sh付き - Qiita ( archive )
クライアント証明書の作り方 | 日々雑記 ( archive )
OpenSSLコマンドでオレオレ証明書を作り、ルート認証局としてサーバー証明書を発行する - Sanwa Systems Tech Blog ( archive )
サーバー証明書のつくりかたと、その原理 - kirinwikiblog ( archive )
SSL/TLSの仕組みを知っていますか? ( archive )
【図解】よく分かるデジタル(SSL/TLS)証明書の仕組み 〜CSR、自己署名(オレオレ)証明書、ルート証明書、中間証明書の必要性や扱いについて〜 | SEの道標 ( archive )
デジタル証明書とデジタル署名について - bambinya's blog ( archive )
SSLサーバ証明書の中身 - Q&A - SSLOFF ( archive )
SSLサーバ証明書の身分証明機能の信頼性 - Q&A - SSLOFF ( archive )
理解してるつもりの SSL/TLS でも、もっと理解したら面白かった話 · けんごのお屋敷 ( archive )
SSL/TLSの解説と選び方まとめ|ジオトラスト ( archive )
SSL/TLS(Part.3):不正アクセスを防止するSSL/TLS(4) - @IT ( archive )
SSL/TLS(Part.4):不正アクセスを防止するSSL/TLS(5) - @IT ( archive )
サーバー証明書のつくりかたと、その原理 - kirinwikiblog ( archive )
中間証明書 - f5 ( archive )
今なぜHTTPS化なのか?インターネットの信頼性のために、技術者が知っておきたいTLSの歴史と技術背景 - エンジニアHub|若手Webエンジニアのキャリアを考える! ( archive )
電子証明書あれこれ - Qiita ( archive )
証明書や秘密鍵のフォーマットを変換することだけを書いた | Divide et impera ( archive )
RSA 秘密鍵/公開鍵ファイルのフォーマット - bearmini's blog ( archive )
Abstract Syntax Notation One - Wikipedia ( archive )
X.690 - Wikipedia ( archive )
オレオレ証明書をopensslで作る(詳細版) - ろば電子が詰まっている ( archive )

18
25
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
25

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?