1
1

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サーバ証明書を発行して使用する

Posted at

ローカル環境や一般公開しない特定の範囲内で使用する分には、自己証明書(オレオレ証明書)でも問題ありませんが、一般公開するような用途では警告(信頼された証明機関から発行されたものではありません)が出てしまうのでお勧めできません。
最近ではSSL証明書の導入を標準化する流れですし。

そこで、さすがに有料になってしまいますが、正式なSSLサーバ証明書を発行してみます。
最近は安いもので年額1,500円程度で発行できます。
※最近では Let’s Encrypt という無料のSSL証明書もあったりします。

SSLサーバ証明書には下記の3種類があるのですが、

  • ドメイン認証SSL
  • 企業認証SSL
  • EV SSL

ドメイン認証SSL以外は個人で取得できないので、ドメイン認証SSLを取得する前提ですすめます。

CSR(Certificate Signing Request)の作成

まずは、申し込みに必要となるCSR(Certificate Signing Request)ファイルを用意します。
途中まではオレオレ証明書を作成する流れと一緒です。

まずは、ディレクトリを移動。(ここである必要はありません。)

# cd /etc/pki/tls/private

そして、秘密鍵の作成。

秘密鍵の生成
# openssl genrsa -des3 2048 -rand /var/log/ > www.hoge.jp.key
Generating RSA private key, 2048 bit long modulus
................................................................................+++
..........................................+++
e is 65537 (0x10001)
Enter pass phrase:                ←秘密鍵のパスフレーズを入力
Verifying - Enter pass phrase:    ←もう一度入力

あと、暗号化を解除しておきます。(オリジナルはコピーしておく)

暗号化の解除
# cp -p www.hoge.jp.key www.hoge.jp.key.org
# openssl rsa -in www.hoge.jp.key -out www.hoge.jp.key
Enter pass phrase for private/localhost.key:    ←秘密鍵のパスフレーズを入力
writing RSA key

そしてCSRの作成。正式な証明書なので、入力項目は正式な情報を入力します。

CSRの作成
# openssl req -new -key ./www.hoge.jp.key -out ./www.hoge.jp.csr
Country Name (2 letter code) [XX]:JP                                  ←国コード
State or Province Name (full name) []:Tokyo                           ←都道府県
Locality Name (eg, city) [Default City]:Edogawa-ku                    ←市区町村
Organization Name (eg, company) [Default Company Ltd]:SOFTPLUS        ←組織名(これは自分が名乗っているもので大丈夫です。サイト名など)
Organizational Unit Name (eg, section) []:                            ←部署名(未入力でもOKです)
Common Name (eg, your name or your servers hostname) []:www.hoge.jp   ←発行するドメイン(間違わないように!)
Email Address []:                                                     ←未入力でOK

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

これでCSRの完成です。

発行を申請(委託)する

あとは発行を委託するサービスを選びます。
これはお好きなサービスを選べば良いと思いますが、自分はさくらのラピッドSSL(年額税込み1,620円)を選びました。(サーバもさくらなので)

申し込みの際に先ほど作成したCSRを求められると思うので、入力して申請します。
さくらの場合はこの後、ドメインの正当性確認のために確認用のHTMLファイルが発行されるので、それをドメイン直下に配置(インターネットから参照できるように)して待ちます。
さくらのラピッドSSLだと、営業日の申請であれば早ければその日にサーバ証明書が発行されます。

中間証明書という名の落とし穴

発行されたら、あとはサーバに設定するだけなのですが、ここで注意すべき点があります。
発行機関によっては発行された証明書の他に、中間証明書もサーバ側に設定してあげないといけません。(まさにラピッドSSLはそうでした)
中間証明書を設定しないと、PCのブラウザなどでも問題なく(警告なく)表示されても、Androidのブラウザなどではなぜか警告が出るという状態になります。
自分も最初はまりました。。。ちゃんと証明書の発行通知のメールに中間証明書もインストールしてと書いてあるんですけどね(笑)

Apacheではサーバ証明書の他に中間証明書を指定するプロパティがあるのですが、Nginxにはありません。
ならどうするのか?。。。答えは簡単で1ファイルにくっつけてあげますw

# cat www.hoge.jp.crt
-----BEGIN CERTIFICATE-----
発行されたサーバ証明書
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
中間証明書
-----END CERTIFICATE-----

なので、証明書としての中身はこんな感じで2つが一緒に記載された形になります。

1
1
0

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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?