reyfox blog

reyfox tech info

Apache2.4系 CentOS Linux

Apache httpdにワイルドカードの自己証明SSLを設定

投稿日:

現在では常時SSL化が流行ってきていてローカルの開発時でもSSL化しておくとWebアプリケーションを作ったときに検証などしやすくなります。

毎回サブドメインごとに自己証明のSSLを発行するのが面倒なので、ワイルドカードのSSLを発行します。

なお、自己証明なので、ブラウザの警告は出ます。ブラウザ側で設定を変えるなどしてアクセスするようにしてください。

今回のドメイン: reyfox.lo(内向きDNSで設定しているドメインとなります)

秘密鍵を作成する

まず以下のコマンドで秘密鍵を作成します。


cd /etc/pki/tls/certs
openssl genrsa -aes128 2048 > wild.key
Generating RSA private key, 2048 bit long modulus
......+++
......................+++
e is 65537 (0x10001)
Enter pass phrase:
Verifying - Enter pass phrase:

作成するときにパスフレーズが求められます。(ブランク不可)これは必須ですがサーバの起動ごとに聞かれるのでパスフレーズを削除します。

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


openssl rsa -in wild.key -out wild.key.out
Enter pass phrase for wild.key:
writing RSA key
rm wild.key
mv wild.key.out wild.key

wild.key.outにパスフレーズなしの秘密鍵を作成し、その後パスフレーズありの秘密鍵を削除し、wild.key へとリネームします。

CSRの発行


openssl req -new -key wild.key > wild.csr
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) [XX]:JP
State or Province Name (full name) []:
Locality Name (eg, city) [Default City]:
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:*.reyfox.lo
Email Address []:

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

内容は適当で良いですが Common Nameの部分だけ、*.ドメイン名にします。

自己証明する(通称オレオレ証明書)


openssl x509 -in wild.csr -days 36500 -req -signkey wild.key > wild.crt
Signature ok
subject=/C=JP/L=Default City/O=Default Company Ltd/CN=*.reyfox.lo
Getting Private key

期限は普通1年や2年ですが開発用なので100年にします。

あとは yum で mod_ssl をインストールし、config ファイルを作成します。(例: /etc/httpd/conf.d/ssl.conf)


SSLCertificateFile /etc/pki/tls/certs/wild.crt
SSLCertificateKeyFile /etc/pki/tls/certs/wild.key

上記のように発行したオレオレ証明書と秘密鍵を設定するだけでワイルドカードSSLの設定が完了します。

なお上記の証明書はApacheだけでなくnginxなどでも使用できます。

先にも書きましたがもちろん第三機関に認証されてないオレオレ証明書なのでブラウザの警告はでるので例外として登録しておく必要があります。

-Apache2.4系, CentOS, Linux

執筆者:

関連記事

CentOS7でローカルIPアドレスを固定する

CentOS7をサーバとして使用していると、ローカルのIPアドレスを固定したいことがあります。セットアップ時にもIPは設定できますが、セットアップ時はDHCPでの払い出しIPでおこない、その後に変更し …

PHPMyAdminの設置

PHPをインストールしましたが、DBを操作するのに便利なのがPHPMyAdminです。もちろんコマンドラインからも行えますがユーザの追加やユーザ専用のDBを作るとき何度もパスワードを入力したりするのが …

CentOS7にApacheをインストール

CentOS7はnetworkインストールで最小構成だと httpd(Apache)が入りません。しかし、yumコマンドで簡単にインストールすることが出来ます。 インストール yum install …

grafana+prometheusでサーバ監視をしグラフィカルなダッシュボードを作る

少し前までは、fluentd+elasticsearch+kibanaというダッシュボードが流行っていた気がしますが、elasticsearchはJavaで動いているため非常に多くのメモリを消費すると …

CentOS7にSambaサーバを立ててWindows/Macとファイルを共有する

Linux上にsambaサーバを立てて、Windows及びMacとファイル共有をします。 ストレージは以前増設した3TBのHDDを用いて3TBすべてを共有してNASのように使用します。 Intel N …