SSL/TSL

以下の情報も適時参照の事(wikipedia)

鍵の作成

こんな感じでserver.keyとかいうファイルを作るのだが

$ openssl genrsa -des3 -out server.key 2048

トリプルDESのパスフレーズ付きになってしまう。パスフレーズが付いているといろいろと面倒なので運用で何とかする場合が殆どだったりする。後から取り除いてもいいのだけど面倒なので最初っからパスフレーズ抜きでいいんじゃないかと思われる。

$ openssl genrsa -out server.key 2048
Generating RSA private key, 2048 bit long modulus
..........++++++
........................++++++
unable to write 'random state'
e is 65537 (0x10001)

-des3を取り除いただけ。権限は400とかにしておく。

CSRを作る

「署名要求」とでもいうのだろうか。金を払って証明書を取得する場合はこのファイルをどうこうする事になる。ローカルCAでも同じ事なのだが、とりあえず。

openssl req -sha256 -new -key server.key -out server.csr

Common Nameに注意する事。実際のドメインと合わせないといろいろと問題だったりする。

Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Aichi
Locality Name (eg, city) []:Nagoya-Shi
Organization Name (eg, company) [Internet Widgits Pty Ltd]:example
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:www.example.org
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

これでserver.csrが出来るので、これを適当な所に送ったり何とかしたりする。実際に送ってみた例も後で記述してみる(出来れば)

Local CAを作る

然るべき機関に署名してもらうのが筋なのだが、これには金がかかってしかたないのでローカルCAを作ってそこで署名する。いわゆる「オレオレ証明書」という奴である。通信の暗号化がしたい場合だとかSSLがどーしても必要だとかいう場合に有効だろう。ここではあまり利用されない/optの下に/opt/localCAというディレクトリを作成して行う事とする。一般的には/var/localの下などを利用する事も多い。

$ sudo mkdir /opt/localCA
$ cd /opt/localCA/
$ sudo /usr/lib/ssl/misc/CA.pl -newca

いろいろ聞かれるけど基本何でもok。ただアクセスした側からは見えるのであんまり変な名前はいれない方がいいかもしれませんよ。

署名する

とりあえずcsrを受け取らなければならない。今回は適当にコピーするなどしてCAを作成したユーザがこれを読み取れるようにしておく。その後以下のようにして署名する。(これはdemoCAディレクトリがある場所でやる)

openssl ca -policy policy_anything -out server.crt -infiles server.csr

するとPEMパスワードが尋ねられるのでCAを作成したときのパスワードを入力。その後適当に内容を確認したのち「Y」とすると署名が完了し、server.crtができる。これを送り返せ(コピーすれ)ばいい

これで基本的に

  • server.key (鍵)
  • server.csr (署名要求、署名が終わったら基本必要無し)
  • server.crt (証明書)

の3つのファイルが出来る。

小技

CSRから生成情報を抜く

openssl req -noout -text -in <CSRのファイル名>
ssl.txt · 最終更新: 2017/08/06 14:10 by admin
www.chimeric.de Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0