一昔前に書いたメモが見つかったので、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
テキストエディタで開いて、そのまま貼り付ける
以上。