LoginSignup
2
3

More than 5 years have passed since last update.

証明書差し替えマニュアル

Last updated at Posted at 2018-04-26

一昔前に書いたメモが見つかったので、Qiitaに上げておきます。
当時の事はあまり覚えてないので、ほとんどメモのままですが...

きっかけ

上司「証明書と鍵の交換しといてー、これ使ってね」

  • ****.key
  • ****.crt
  • ****.inca

わい「うぃす(やり方知らんけど、聞くのもあれだし、自分で調べながらやろう)」

手順

1. 何のWebサーバを使っているのか特定する

Webサーバによって、証明書を解釈するアルゴリズムが違うらしい。(Apache、Nginx、Glassfish...)
なので、何のWebサーバを使っているのか特定する必要がある。

ざっくりと説明すると、

  • 証明書を使っているという事はHTTPS通信をしていると
  • HTTPSはポート番号=443
  • LISTEN状態のポート一覧を表示して、ポート番号=443を探し、Program nameを確認する

Linuxの場合、以下のコマンドを叩き、LISTEN状態の一覧を表示する。
以下の場合だと、nginxを使っている事が確認できる。

$ netstat -tanp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
    (・・・・省略・・・・)
tcp        0      0 0.0.0.0:443                 0.0.0.0:*                   LISTEN      1113/nginx
    (・・・・省略・・・・)

2. 証明書がどこに配置されているか確認する

nginxの場合、デフォルトのインストール先は/etc/nginxであり、基底となる設定はnginx.confとなるため、これを見る。
(インストール先が異なる場合は、そこに移動してください)

$ cd /etc/nginx
$ cat nginx.conf

user  nginx;
worker_processes  1;
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    keepalive_timeout  65;
    #gzip  on;
    include /etc/nginx/conf.d/*.conf;
}

ここには証明書に関する設定はないようだ。

設定ファイルの中にinclude /etc/nginx/conf.d/*.conf;と書かれている。
「別の設定ファイルも読み込んでますよ〜」という意味なので、そちらも見てみる。

$ cat conf.d/*.conf

(・・・・省略・・・・)
server {
    (・・・・省略・・・・)
    ssl on;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_certificate     /home/nginx/certificate/********.pem;
    ssl_certificate_key /home/nginx/certificate/********.key;
    (・・・・省略・・・・)
}
(・・・・省略・・・・)

見つけた。
.pemファイルが、証明書。
.keyファイルが、秘密鍵or公開鍵となる。

なので、ここに証明書が配置されている事が確認できる!!!やったねたえちゃん!!!

3. 証明書の差し替え

さて、場所も分かったので証明書を差し替えよう。

まずは、配置先まで移動。

$ cd /home/nginx/certificate/

思い出した。
上司からもらった証明書と鍵は.key.crt.inca
差し替える対象の証明書と鍵は.key.pem

一致しない.....
どういう事なの..........

調べてみると、こういう事らしい。

  • .crtは証明書
  • .incaは中間証明書

更に調べてみると、.pemはこうやって作るらしい。

  • .pemの空ファイルを作る
  • .crtをテキストエディタで開いて、そのまま貼り付ける
  • 改行をかます
  • .incaテキストエディタで開いて、そのまま貼り付ける

以上。

2
3
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
2
3