証明書SSLOpenSSLtech自己署名なSSL証明書を作成する方法を、メモとして書いておこうと思いまして。テストあたりで、使ったりしますしね。今回使用した、OpenSSLのバージョンはこちら。秘密鍵の作成オマケでパスワードの解除方法CSRの作成(自己署名証明書を作成する場合は、スキップ可能)署名となります。2048秘密鍵は、以下の情報で作成し、鍵の保護はAES-128を指定。(ここでは記載を省略)ApacheなどのWebサーバーで使う場合、起動時にパスワードが求められるのが嫌なら解除する方法も。sample.key最初からパスワードなしで作る場合は、こちらです(秘密鍵の保護指定がなくなる)。2048CSRの作成。sample.csr聞かれる情報は、こんな感じです。passwordは、通常空欄のままにしておきます。Nameのみ「hoge.com」と指定しておきました。[]:hoge.comCommonNameに「.example.com」のように、「」を含めたものにすると、ワイルドカード証明書になります。通常は、次のようになります(有効期限は、365日にしています)。sample.crt確認。Name)通常、OpenSSLで作成するSSL証明書は、ひとつのSubjectを持ち、ひとつのホスト名に対してのみ有効です。X509拡張のSAN(SubjectAlternativeName)を使用すると、複数のホスト名に対応させることができます。複数ホスト名に対応させる場合は、次のようなテキストファイルを用意します。ファイル名は、なんでもいいです。IP:172.17.0.2ホスト名を書く場合は「DNS」で、IPアドレスで書く場合は「IP」で指定します。ワイルドカード(*)も使用可能です。これを、署名時に「-extfile」オプションで指定します。subjectnames.txt確認。AlternativeName」に、指定したsubjectAltNameが含まれるようになります。Address:172.17.0.2ここで注意ですが、SAN拡張を含めた証明書は、元のSubjectを無視するようになります。このページで作成した証明書でいくと、CommonNameを「hoge.com」にしていました。[]:hoge.comSAN拡張を使用した場合、この証明書で「hoge.com」は無効となりますので、注意しましょう。このSSL証明書をApacheに組み込んで、「証明書のサブジェクトの代替名」を確認すると、こんな感じに見ることができます。![f:id:Kazuhira:20180803223720p:image](https://cdn-ak.f.st-hatena.com/images/fotolife/K/Kazuhira/20180803/20180803223720.png)オマケCSRなしで、秘密鍵からいきなり自己署名証明書を作成する場合は、こちら。sample.crt「-extfile」は、x509サブコマンドのオプションのようなので、こちらではムリっぽいですね。Proよくある質問LinksX(Twitter)GitHubメディアキットLegal利用規約プライバシーポリシ。