FujiSSLでSANs対応のドメイン認証をとる

2017年6月5日

比較的安価にドメイン認証を取得できる業者の中で、FujiSSLはSANsに対応したCSRで申請することでwwwありなし両対応のドメイン認証が取得できます。

SANs対応のCSR作成

業者によってはCSRで申請したドメインに対して自動的にSANsに対応したドメイン認証をしてくれるところもありますが、FujiSSLは明示的に申請する必要があります。

ところがFujiSSLのサイトにあるCSRの作成手順ページやCSR作成ツールではSANsに対応したCSRを作ることができません。調べたところopensslを使って次のように作成することがわかりました。

  1. 秘密鍵の準備

    FujiSSLの作成ツール等を利用して事前に作成

  2. openssl.cnfの作成
    1. /etc/ssl/openssl.cnfを適当にコピーして、定義ファイルを作成
    2. コメントアウトされているreq_extensions = v3_reqを有効化
    3. [ v3_req ]セクション内にsubjectAltName = @alt_namesを追記
    4. [ v3_req ]セクションの後に[ alt_names ]セクションを追加
      [ alt_names ]
      DNS.1 = junk-works.science
      

      ※複数指定したい場合は、DNS.2, DNS.3と続ける

  3. opensslでCSR作成
    $ openssl req -config openssl-sans.cnf -new -key www.junk-works.science.key -out www.junk-works.science.csr -sha256
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [AU]:JP
    State or Province Name (full name) [Some-State]:Tokyo
    Locality Name (eg, city) []:Nerima-ku
    Organization Name (eg, company) [Internet Widgits Pty Ltd]:Junk Works
    Organizational Unit Name (eg, section) []:Junk Works
    Common Name (e.g. server FQDN or YOUR name) []:www.junk-works.science
    Email Address []:
    
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:
    An optional company name []:
    $
    

CSRの内容確認

このようにしてできたCSRは暗号化されているので、本当にSANs対応できているのかわかりません。opensslを使ってCSRファイルを復号化すると確認できます。

$ openssl req -text -noout -in www.junk-works.science.csr
Certificate Request:
    Data:
        Version: 0 (0x0)
        Subject: C=JA, ST=Tokyo, L=Nerima-ku, O=Junk Works, OU=Junk Works, CN=www.junk-works.science
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:c4:8e:36:2d:68:c0:9f:54:93:fe:da:52:82:28:
                    d3:42:96:53:71:81:c3:34:e6:36:ec:09:61:11:43:

                    〜中略〜

                    60:2a:98:77:85:5e:35:a4:e8:02:83:26:e6:40:31:
                    9f:a1:09:e0:eb:cd:9a:35:b0:ab:a3:9b:0d:05:9a:
                    40:5b
                Exponent: 65537 (0x10001)
        Attributes:
        Requested Extensions:
            X509v3 Basic Constraints:
                CA:FALSE
            X509v3 Key Usage:
                Digital Signature, Non Repudiation, Key Encipherment
            X509v3 Subject Alternative Name:
                DNS:junk-works.science
    Signature Algorithm: sha256WithRSAEncryption
         7f:dc:06:50:e1:7a:e9:cf:42:b0:77:37:60:f2:5a:c6:f7:c3:
         55:b9:65:9f:31:01:66:f5:ee:32:f0:56:81:75:01:5e:23:56:

         〜中略〜

         85:34:73:3d:9e:a8:8c:e0:51:57:f6:8c:91:c0:f2:78:ed:c3:
         4d:f3:0a:b3:76:e7:1d:71:23:2f:65:2f:4a:8c:7d:c4:37:cc:
         14:ee:87:0c

中ほどにSubject Alternative Nameの項目があり、wwwなしのドメインが指定されているのが確認できたので、これで申請しましょう。(実際には作り直したので上記は破棄しています)