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) は証明書インストール時に必要になる.
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
上記で入力した内容と相違ないことを確認.
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 で確認.
ダウンロードした 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 を含めること.
サーバ証明書が発行されると,利用管理者 (倉本さん) 宛に証明書の取得リンクが送られる. 利用管理者から転送された取得リンクより,サーバ証明書をダウンロード. また,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 用作業ディレクトリを 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 用作業ディレクトリを 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 の受信確認は難しいかもしれない
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 |