なんちゃって証明書の作成と Apache https 設定

テストのために localhost に https でアクセスできる環境を作らないといけなくなったので、本当に 10数年ぶりに「なんちゃって証明書」を発行した。

SSL 環境をセットアップしないと、https://localhost/ にアクセスしてもエラーになってしまうのでね。

■ついでに Apache の自動起動設定も

まだ、自動起動設定をしてなかった(Apache 立ち上がってないやん)

[root@PC ~]# systemctl enable httpd
Created symlink
'/etc/systemd/system/multi-user.target.wants/httpd.service' → '/usr/lib/systemd/system/httpd.service'.
[root@PC ~]# systemctl start httpd

これで、サーバ起動時に Apache が自動起動されるようになる。

■openssl のインストール

[root@PC ~]# openssl
-bash: openssl: command not found

openssl はインストールされていないようだ。なのでインストール(dnf コマンド一発だけど(^^;)

[root@PC ~]# dnf -y install openssl
Last metadata expiration check: 0:03:24 ago on Tue 01 Sep 2026 09:00:36 AM JST.
Dependencies resolved.
============================================================================================================================================
 Package                      Architecture                Version                                   Repository                   Size
============================================================================================================================================
Installing:
 openssl                      x86_64 1:3.5.5-6.el10_2.alma.1                         baseos     1.2 M
Transaction Summary
============================================================================================================================================
Install  1 Package
<略>
Installed:
  openssl-1:3.5.5-6.el10_2.alma.1.x86_64

Complete!

■秘密鍵の作成

[root@PC ~]# openssl genrsa -out server.key 2048
[root@PC ~]# cat server.key
-----BEGIN PRIVATE KEY-----
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCbCAkLlIX/Q6mi
MmV213oUQp99CwfRIQhM3CarHVacyjzeU3K/FFveM8sKKmiozkNh/U4z/xpK4e2K
YUkU/5UpMsar4BvsJg3NpLVuzt5McYRwcGqHMdaLzQy9xKlzfy/qGVp/w7LRCSGm
vKwBpd98mW7cSquiPqaawASzZcFHaa3EOTHqFDeIBOcUB5Cqj0Zg/LdQBs0Cb0aj
WWmZsXyjOhQDqlmMlaEYaS2EfekKife7LcHhYr04KQ4v/A3xGef7o/aeU7vrkgpx
...
-----END PRIVATE KEY-----

■サーバ証明書(なんちゃって証明書)の発行

有効期限10年とかで作ればいいんだけど、根がまじめなので 1年(365日)で作成する(笑)

[root@PC ~]# openssl req -new -key server.key -x509 -days 365 -out server.crt
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) []:Hiroshima
Locality Name (eg, city) [Default City]:Hiroshima
Organization Name (eg, company) [Default Company Ltd]:Net And Field Co, Ltd.
Organizational Unit Name (eg, section) []:localhost
Common Name (eg, your name or your server's hostname) []:localhost
Email Address []:
[root@PC ~]# cat server.crt
-----BEGIN CERTIFICATE-----
MIID3TCCAsWgAwIBAgIUPmm2mDtBgMyo3miqzvJ2dvOGEgwwDQYJKoZIhvcNAQEL
BQAwfjELMAkGA1UEBhMCSlAxEjAQBgNVBAgMCUhpcm9zaGltYTESMBAGA1UEBwwJ
...
NTRaFw0yNzA5MDEwMDA2NTRaMH4xCzAJBgNVBAYTAkpQMRIwEAYDVQQIDAlIaXJv
...
-----END CERTIFICATE-----

■適当な場所に証明書を配置 ※取り合えず自分のホームディレクトリ上に作ってるんで

[root@PC ~]# ls -la /etc/pki/tls/private/
total 8
drwxr-xr-x 2 root root 4096 Jul 27 09:00 .
drwxr-xr-x 6 root root 4096 Jul 27 09:00 ..
[root@PC ~]# ls -la /etc/pki/tls/certs
total 1176
drwxr-xr-x 2 root root 12288 Jul 27 09:00 .
drwxr-xr-x 6 root root  4096 Jul 27 09:00 ..
lrwxrwxrwx 1 root root    70 May 27 02:17 002c0b4f.0 -> /etc/pki/ca-trust/extracted/pem/directory-hash/GlobalSign_Root_R46.pem
lrwxrwxrwx 1 root root    96 May 27 02:17 01419da9.0 -> /etc/pki/ca-trust/extracted/pem/directory-hash/Microsoft_ECC_Root_Certificate_Authority_2017.pem
lrwxrwxrwx 1 root root    71 May 27 02:17 0179095f.0 -> /etc/pki/ca-trust/extracted/pem/directory-hash/BJCA_Global_Root_CA1.pem
<略>
lrwxrwxrwx 1 root root    76 May 27 02:17 ffdd40f9.0 -> /etc/pki/ca-trust/extracted/pem/directory-hash/D-TRUST_BR_Root_CA_2_2023.pem

証明書をコピー

[root@PC ~]# cp server.key /etc/pki/tls/private/
[root@PC ~]# cp server.crt /etc/pki/tls/certs/

■SSL の設定

[root@PC ~]# ls -la /etc/httpd/conf.d/ssl.conf
ls: cannot access '/etc/httpd/conf.d/ssl.conf': No such file or directory

おや?mod_ssl が入ってない?

インストールを行う。(これも dnf コマンド一発)

[root@PC ~]# dnf install mod_ssl
Last metadata expiration check: 2:09:58 ago on Tue 01 Sep 2026 09:00:36 AM JST.
Dependencies resolved.
============================================================================================================================================
 Package                        Architecture                Version                                 Repository                      Size
============================================================================================================================================
Installing:
 mod_ssl                        x86_64 1:2.4.63-13.el10_2.6                       appstream   108 k
Installing dependencies:
 libtalloc                      x86_64 2.4.3-100.el10                             baseos    34 k
 sscg                           x86_64 4.0.3-2.el10                               appstream    51 k
Transaction Summary
============================================================================================================================================
Install  3 Packages
<略>
Installed:  libtalloc-2.4.3-100.el10.x86_64 mod_ssl-1:2.4.63-13.el10_2.6.x86_64 sscg-4.0.3-2.el10.x86_64

Complete!
[root@PC ~]# ls -la /etc/httpd/conf.d/ssl.conf
-rw-r--r-- 1 root root 8720 Aug 20 09:00 /etc/httpd/conf.d/ssl.conf

ちゃんと、ssl.conf も作られている

■ssl.conf の編集

[root@PC ~]# cp /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf_20260901
[root@PC ~]# vi /etc/httpd/conf.d/ssl.conf
[root@PC ~]# diff /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf_20260901
85,86c85
< #SSLCertificateFile /etc/pki/tls/certs/localhost.crt
< SSLCertificateFile /etc/pki/tls/certs/server.crt
---
> SSLCertificateFile /etc/pki/tls/certs/localhost.crt
94,95c93
< #SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
< SSLCertificateKeyFile /etc/pki/tls/private/server.key
---
> SSLCertificateKeyFile /etc/pki/tls/private/localhost.key


■Apache 再起動

[root@PC ~]# systemctl restart httpd

これで、
https://localhost/
にアクセスできるようになる。

トラックバック(0)

このブログ記事を参照しているブログ一覧: なんちゃって証明書の作成と Apache https 設定

このブログ記事に対するトラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/7304

コメントする

このブログ記事について

このページは、shinodaが2026年9月 3日 01:24に書いたブログ記事です。

ひとつ前のブログ記事は「吉野家で1,630円の定食を食べる」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら