FujiSSL GOでSSL証明書を自動更新する

FujiSSL GOとは

FujiSSL GOは、FujiSSLが提供する証明書の自動更新システムです。Let’s Encryptのような形でCUIで証明書を自動更新できます。従来のような秘密鍵やCSRファイルの生成、証明書の申請などの手続きが必要なく、簡単に証明書を発行・更新できます。今回はそのFujiSSL GOを使った証明書の作成手順をご紹介します。

SSLサーバ証明書自動更新システムFujiSSL GO

FujiSSL GOアカウントの作成

FujiSSL GOを使用するにはアカウントが必要です。FujiSSL GOマネジメントコンソールにアクセスします。

アカウントがない場合は、アカウントを作成します。

アカウント作成後に確認メールが送信されますのでクリックします。

以下の画面が表示されればアカウントの作成は完了です。

FujiSSL GOの証明書の購入

FujiSSL GOのアカウントを作成したら、次に証明書を購入します。FujiSSL GOマネジメントコンソールにログインします。

左のサイドメニューから「証明書」をクリックします。

右上の「証明書の購入」をクリックして証明書の購入画面へ進みます。購入したい証明書の数を選択して、「上記の内容で証明書の購入を確定」をクリックします。

デポジットが不足している場合は、左のサイドメニューから「お支払い」をクリックして、クレジット決済または銀行振込でデポジットをチャージします。

証明書を購入後、証明書の契約コードと注文コードをメモします。

FujiSSL GOクライアントのインストール

サーバーにFujiSSL GOクライアントをインストールします。今回は/etc/fujisslにインストールしましたが、インストール場所は任意の場所でかまいません。

$ wget https://console.fujissl.jp/files/fujissl-go-0.0.2.zip
$ unzip fujissl-go-0.0.2.zip
$ mv fujissl-go-0.0.2 fujissl
$ sudo mv fujissl /etc/fujissl
$ cd /etc/fujissl
$ sudo php ./bin/fujissl-go create geek(任意のconfファイル名)

ここまで実行できた段階で、/etc/fujissl/conf/geek(任意の名前).confというファイルが生成されます。

ファイル生成時に、PHPのタイムゾーンが設定されていないと以下のワーニングが出る場合があります。

PHP Warning:  date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /etc/fujissl/lib/Log.php on line 1

ワーニングを無視して作業することもできますが、このエラーは/etc/php.iniに以下の記述を記載することで解消します。

date.timezone = Asia/Tokyo

FujiSSL GOのconfファイルの編集

作ほど生成されたconfのファイルを編集します。

config:
  appid: *********(先ほどメモした契約コード)
  ordid: *********(先ほどメモした注文コード)
  fqdn: www.geek.sc(ドメイン名)
  document_root: /var/www/html(ドキュメントルート)
  backup_dir: /etc/fujissl/backup(バックアップディレクトリ)
  private_key: /etc/fujissl/private.key(作成する秘密鍵のフルパス)
  certificate: /etc/fujissl/certificate.crt(作成する証明書のフルパス)
  ca_bundle: /etc/fujissl/bundle.crt(作成する中間調名書のフルパス)

FujiSSL GOによる証明書の登録

confファイルを設定できたら、以下のコマンドで証明書の登録を行います。

$ sudo php ./bin/fujissl-go regist -c www.geek.sc -f geek.conf

以下のメッセージが出れば登録は完了です。

Create /var/www/html/.well-known/pki-validation/fileauth.txt file.
Create /etc/fujissl/backup/www.geek.sc/private.key file.
The certificate registed was successful.
Register the following command in cron:
/usr/bin/php /etc/fujissl/bin/fujissl-go autorenew -c www.geek.sc -f geek.conf

しかし、この段階ではまだ登録完了後の審査中で、証明書ファイルは作成されていません。証明書ファイルが作成されるまで何度か以下のコマンドを実行する必要があります。証明書の更新の時にも使用しますので、1日1回くらいの頻度でCRONに登録しておくと良いでしょう。

/usr/bin/php /etc/fujissl/bin/fujissl-go autorenew -c www.geek.sc -f geek.conf

数時間後には、confで指定したパスに証明書ファイルおよび中間証明書ファイルが作成されました。