UPKI サーバ証明書更新マニュアル


  1. サーバ鍵の生成
  2. CSR ファイルの作成
  3. TSV ファイルの作成
  4. サーバ証明書のインストール
  5. 証明書の有効期限の確認

[1] サーバ鍵の生成

openssl を用いた RSA サーバ鍵ペアの作成 (この作業はローカルで行う)

乱数生成用ファイルを作成.

$ dd bs=200K count=1 if=/dev/urandom of=randfile1.txt
$ dd bs=200K count=1 if=/dev/urandom of=randfile2.txt
$ dd bs=200K count=1 if=/dev/urandom of=randfile3.txt

確認

$ ls
    randfile1.txt randfile2.txt randfile3.txt

暗号化された RSA 秘密鍵の生成

$ openssl genrsa -des3 -rand randfile1.txt:randfile2.txt:randfile3.txt 2048 > mail.key
	  Enter PEM pass phrase:    # EPcore と打鍵
	  Verifying - Enter PEM pass phrase:    # 再度 EPcore と打鍵

このパスフレーズ (EPcore) は証明書インストール時に必要になる.

[2] CSR ファイルの作成

CSR とは Certificate Signing Request すなわち証明書署名要求である. 認証局(CA)に公開鍵に対する証明書を発行してもらうため, 公開鍵やサーバ識別情報などを含めた CSR ファイルが必要になる.

北大発行のUPKI電子証明書発行サービス申請用ファイル作成手順 及び過去の手順書, 再発行指示メールをもとに下記の入力欄を 埋める.

$ openssl req -new -key mail.key -sha256 -out mail.csr
Enter pass phrase for mail.key:     # EPcore と打鍵
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]:Hokkaido
Locality Name (eg, city) []:Sapporo
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Hokkaido University
Organizational Unit Name (eg, section) []:.	#(ピリオドだけ入力した)
Common Name (e.g. server FQDN or YOUR name) []:mail.ep.sci.hokudai.ac.jp
Email Address []:.

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:.
An optional company name []:.

存在を確認する.

$ ls
    randfile1.txt  randfile2.txt  randfile3.txt  mail.csr  mail.key

作成内容を確認する.

$ openssl req -noout -text -in mail.csr

上記で入力した内容と相違ないことを確認.

[3] TSV ファイルの作成

TSV とは Tab-Separated Values すなわちタブ区切りのデータフォーマットである. CSR ファイルのフォーマットとして TSV が指定されているため, 作成した CSR の形式を変換する.

直前で作成した CSR ファイルを用い, TSV ファイル作成支援ツール ( https://certs.nii.ac.jp/tsv-tool/) から TSV ファイルを作成. 入力内容は再発行指示メールをもとに入力. 失効対象証明書シリアル番号は https://www.hines.hokudai.ac.jp/upki/ssl/#crt_update で確認.

  1. 「作成開始」をクリック
  2. 「新規作成」タブにて以下の情報を選択し, 作成を開始する.
  3. 「この内容で作成を開始」
  4. CSRファイルを選択して読み込み, 申請内容を編集し, 次へ進む.
  5. 残りの情報を入力.
  6. 作成された TSV ファイルをダウンロード

ダウンロードした TSV ファイルにパスワード (epmail) をかけて ZIP 圧縮を行う.

$ sudo apt install zip
$ zip -e --password=epmail update-server-202507041809.zip update-server-202507041809.tsv
adding: update-server-202507041809.tsv (deflated 24%)

利用管理者 (倉本さん) に,zip ファイルをパスワード (epmail) と共にメールで送信. その際,Cc に epcore-ml を含めること.

[4] サーバ証明書のインストール

サーバ証明書の取得

サーバ証明書が発行されると,利用管理者 (倉本さん) 宛に証明書の取得リンクが送られる. 利用管理者から転送された取得リンクより,サーバ証明書をダウンロード. また,RSA 認証局の中間 CA 証明書と CRL (失効リスト) もダウンロードする.

サーバ証明書のアップロード

ホスト証明書,中間CA証明書及び秘密鍵をサーバーにアップロードする.

grey に作業ディレクトリを作成し,各種証明書を転送する.

$ sftp synthese@mail.ep.sci.hokudai.ac.jp
> mkdir upkiwork
> cd upkiwork
> put mail.ep.sci.hokudai.ac.jp.cer
> put nii-odca4g7rsa.cer
> put fullcrlg7rsa.crl
> put mail.key
> exit

秘密鍵のパスフレーズ除去

以後の作業は grey にて行う

$ ssh synthese@mail.ep.sci.hokudai.ac.jp
$ cd upkiwork
$ cp mail.key mail_out.key
$ openssl rsa -in mail_out.key -out mail_out.key
	Enter pass phrase for mail_out.key:     # EPcore と打鍵
	writing RSA key

証明書の整形

ホスト証明書 (mail.ep.sci.hokudai.ac.jp.cer) の体裁を整える. (2025年度作業時は整っていた)

具体的には

IMAP に証明書を適用

IMAP 用作業ディレクトリを upkiwork 直下に作成

$ mkdir imap
$ cd imap

証明書・秘密鍵のコピー

$ cp ../*cer .
$ cp ../mail_out.key .

既存証明書をバックアップ

$ mkdir dovecot_pre202507
$ sudo cp -r /etc/dovecot/* dovecot_pre202507
$ sudo chown root:root dovecot_pre202507
$ sudo chmod 700 dovecot_pre202507

サーバー証明書と中間証明書を連結

$ cat mail.ep.sci.hokudai.ac.jp.cer nii-odca4g7rsa.cer > fullchain.pem

証明書,秘密鍵を配置

$ sudo -s
# cp mail.ep.sci.hokudai.ac.jp.cer /etc/dovecot/dovecot.cer
# cp nii-odca4g7rsa.cer /etc/dovecot/nii-odca4g7rsa.cer
# cp fullchain.pem /etc/dovecot/fullchain.pem
# cp mail_out.key /etc/dovecot/private/dovecot_key.pem
# chmod 700 /etc/dovecot/private/dovecot_key.pem

設定の変更を行う.(2025 年度作業時は変更しなくても良かった)

# vim /etc/dovecot/conf.d/10-ssl.conf
	以下のように変更
	ssl_cert = </etc/dovecot/fullchain.pem
	ssl_key = </etc/dovecot/private/dovecot_key.pem

dovecot のリスタート

# systemctl restart dovecot

IMAPS を用いて Thunderbird などでメールの受信が行えることを確認

POP/SMTP に証明書を適用

pop/smtp 用作業ディレクトリを upkiwork 直下に作成

$ cd ..
$ mkdir pop
$ cd pop

証明書・秘密鍵をコピーし,連結

$ cp ../*.cer .
$ cp ../mail_out.key .
$ cat mail_out.key mail.ep.sci.hokudai.ac.jp.cer nii-odca4g7rsa.cer > qmail.pem

ファイルのバックアップ

$ mkdir pop_pre202507
$ sudo cp -r /var/qmail/server.key/* pop_pre202507
$ sudo chown root:root pop_pre202507
$ sudo chmod 700 pop_pre202507

鍵を配置

$ sudo -s
# cp qmail.pem /var/qmail/server.key/qmail.pem

qmailの再起動

# systemctl restart qmail
# ps aux | grep qmail

SMTPS を用いて Thunderbird などでメールの送信ができることを確認. POPS の受信確認は難しいかもしれない

[5] 証明書の有効期限の確認

grey 以外で以下を実行

$ openssl s_client -connect mail.ep.sci.hokudai.ac.jp:??? -showcerts </dev/null 2>/dev/null | openssl x509 -noout -text

??? には各ポート番号が入る. 993 (IMAPS),995 (POPS),465 (SMTPS) に変えて実行し,証明書の有効期限を確認する.


最終更新日:2025/07/14 (山本 峻大) Copyright © 2025 - 2025 epcore