自己署名ルート証明書(オレオレ証明書)を使ってssl化、httpからhttps、Apache2.4
httpsのssl化がどんなものかを試したかったので、オレオレ証明書でやってみました。あくまでテストするためです。
環境はec2、amazon linux2、Apache/2.4.41
参考にしたサイト
httpsの設定とオレオレ証明書(自己署名証明書)の作成
ほぼこちらのサイト通りにやっていきました。
実際にやったこと
mod_sslをインストールします。自分の環境ではopensslは最初から入っていました。
$ sudo yum -y install mod_ssl
mod_sslをインストールした時点で、/etc/httpd/conf.d/ssl.confファイルが作成され、apacheを再起動したら(reloadではダメでrestartしないとできなかった)、「https://IPアドレス」でhttpsアクセスできるようになります。
ただもちろんですが、ブラウザでアクセスすると保護されていない通信という警告が出ます。
次に秘密鍵の作成。パスワードは任意で。
(以後、sudo teeを使って"|"(パイプ)に渡していますが、rootになってから進めていってもいいと思います)
$ cd /etc/httpd/conf
$ openssl genrsa -aes128 1024 | sudo tee server.key
Generating RSA private key, 1024 bit long modulus
............++++++
......................................++++++
e is 65537 (0x10001)
Enter pass phrase:
Verifying - Enter pass phrase:
-----BEGIN RSA PRIVATE KEY-----
次にCSRの作成。最初に求められるパスワードは最初に入力したパスワード。
$ openssl req -new -key server.key | sudo tee server.csr
Enter pass phrase for server.key:
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) []:Tokyo
Locality Name (eg, city) [Default City]:Bunkyoku
Organization Name (eg, company) [Default Company Ltd]:エンター
Organizational Unit Name (eg, section) []:エンター
Common Name (eg, your name or your server's hostname) []: [IPアドレスかドメインを入力]
Email Address []:エンター
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:エンター
An optional company name []:エンター
上で作成した秘密鍵とCSRから証明書の作成。パスワードは最初に入力したパスワード。
$ openssl x509 -in server.csr -days 36500 -req -signkey server.key | sudo tee server.crt
Signature ok
subject=/C=JP/ST=Tokyo/L=Nerima/O=Default Company Ltd/CN= [入力したIPアドレスかドメイン]
Getting Private key
Enter pass phrase for server.key:
ssl.confで証明書の設定。2行編集します。作成した秘密鍵と証明書のパスを指定する。
$ sudo vi /etc/httpd/conf.d/ssl.conf
SSLCertificateFile /etc/httpd/conf/server.crt
SSLCertificateKeyFile /etc/httpd/conf/server.key
これで設定は完了しましたが、apacheを再起動するとパスワードを求められるので、パスワードを毎回入力することをやりたくないなら、下のコマンドを実行してパスワード入力を解除します。
$ sudo mv server.key server.key.bak
$ openssl rsa -in server.key.bak | sudo tee server.key
Enter pass phrase for server.key.bak:パスワードを入力
writing RSA key
これでapacheを再起動すれば再度httpsアクセスできるはずです。
ブラウザで証明書を確認してみると、こんな感じです。
あと、CSRを作成する際、Common NameでIPアドレスを入力しましたが、IPアドレスに対応するドメインを入力してもhttpsアクセスできました。
オレオレ証明書の場合、Common Nameには全く関係のない適当なIPアドレスやドメインを入力してもhttpsアクセスはできるね。そして、証明書にその入力した適当なIPアドレスやドメインが署名されてる。
あと、CSRを作成する際、適当にOrganization Name、Organizational Unit Name、Email Addressを入力したら、証明書に入力したものが表示されますね(Organizational Unit Name、Email Addressは何も入力しないでエンターで飛ばすと、証明書には部署とメールアドレス欄はありませんでした)。
その他の参考サイト
CentOS7 + Apache + mod_ssl 証明書設定
→オレオレ証明書ではなく、FujiSSLから証明書を購入している
[インストール] Apache 2.x + mod_ssl + OpenSSL(新規・更新)
[CSR生成] Apache 2.x + mod_ssl + OpenSSL(新規・更新)
->グローバルサインのサポートページ。解説は動画もある。
Author And Source
この問題について(自己署名ルート証明書(オレオレ証明書)を使ってssl化、httpからhttps、Apache2.4), 我々は、より多くの情報をここで見つけました https://qiita.com/matsu_qiita/items/963867c2365f1d7a365d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .