IPアドレスのサーバーを登録SSL証明書を発行する【ZeroSSL】

2023-04-26

IPアドレスベースでのSSL証明書を発行できる「ZeroSSL」を利用する

使用しているサーバーはほとんどが名前ベースのWEBサーバーですが、一部のサーバーでIPアドレスベースで使用しているコンテンツがあります。WEBベースでサーバーを管理できる「Cockpit」ですが、こちらのアドレスですが「https://xxx.xxx.xxx.xxx:9090」のようにIPアドレスベースでのアドレスとなります。

証明書も自己署名証明書で、証明書が警告になるので、Let’s Encryptで証明書を発行を考えましたが、IPアドレスのでの発行ができないようなので、違う証明書を探していたら「ZeroSSL」がIPアドレスでもSSL証明書が発行できるので、これを利用することにしました。

発行は、WEBページでユーザーアカウントを作って、画面の指示に従って5分くらいで登録・SSL証明書をダウンロードできました。無料のアカウントの証明書の有効期限は90日となります。有償オプションだと有効期限が長く設定できます

ZeroSSLを新規アカウントを登録してSSL証明を発行する

1.ZeroSSL のHPにアクセスします

2.画面の右上にある「Get Free SSL」をクリックします

3.登録するアカウントとなる、メールアドレスとパスワードを入力してから「Next Step」を選択します

4.Create SSL Certificate の横にある「New Certificate」を選択します

5.「90-Day Certificate」となっているのを確認して、「Next Step」を選択します

6.次もFreeプランになっていることを確認して、「Next Step」を選択します

7.証明書を発行するには、DNS(CNAME)での認証かHTTPファイルで認証となります。DNS(CNAME)認証を試みましたがうまく行かなかったので、HTTPファイルで認証することにします

8.HTTPファイルでの認証の場合は、ファイルをダウンロードして、そのファイルを任意の場所をアップロードして「「Next Step」を選択すればOKです。

手順としては、

  1. リンクにある、認証ファイルをダウンロードします。認証ファイルのダウンロードします
  2. [/var/www/html(WEBサーバーのドキュメントルート)]/.well-known/pki-validation/ にアップロードします
  3. ブラウザで、http: //x.x.x.x/.well-known/pki-validation/xxxxxx.txt でアクセスでしてアクセスできる事を確認します
  4. Next Step」をクリックして続行します。
# 認証ファイル(XXXXXXx.txt) を「/var/tmp」にアップロードした場合の例です

# 認証ファイル(XXXXXXx.txt) をアップロードした場所にあるか確認します
$ ls /var/tmp/XXXXXXx.txt

#  認証ファイル(XXXXXXx.txt) を配置するディレクトリを作成します
$ sudo mkdir -p /var/www/html/.well-known/pki-validation/

#  認証ファイル(XXXXXXx.txt) を配置する場所に、コピーします
$ sudo cp /var/tmp/XXXXXXx.txt /var/www/html/.well-known/pki-validation/

9.「Download Certificate」を選択します。
※画像キャプチャする時に、ブラウザで翻訳した状態となっていたので日本語となっています

10.Server Typeを「Apache」と選択して、「Next Step」をクリックして続行します。
※画像キャプチャする時に、ブラウザで翻訳した状態となっていたので日本語となっています。Server Typeは私の環境ではApacheを利用しているのでApacheを選択しています

11.「Download Certificate(.zip)」を選択すると、証明書がダウンロードできるので、サーバーにアップロードして任意の場所に配置します
※画像キャプチャする時に、ブラウザで翻訳した状態となっていたので日本語となっています。

12.ダウンロードしたファイルをサーバーにアップロードして、Apacheの設定ファイルを変更してからApacheを再起動します

# ファイルは「/var/tmp」にSCP等でアップロードします
$ ls /var/tmp
ca_bundle.crt certificate.crt private.key

# 証明書関連のファイルを任意の場所にコピーします
$ mkdir /etc/ssl/example.com
$ cp /var/tmp/ca_bundle.crt /etc/ssl/example.com/
$ cp /var/tmp/certificate.crt /etc/ssl/example.com/
$ cp /var/tmp/private.key /etc/ssl/example.com/


# SSLファイル関連の箇所を変更します
$ sudo vim /etc/httpd/conf.d/ssl.conf 
SSLEngine On
SSLCertificateFile /etc/ssl/example.com/certificate.crt
SSLCertificateKeyFile /etc/ssl/example.com/private.key
SSLCertificateChainFile /etc/ssl/example.com/ca_bundle.crt

# SSL証明書を配置したら、Apacheを再起動します
$ sudo systemctl restart httpd