テストのために localhost に https でアクセスできる環境を作らないといけなくなったので、本当に 10数年ぶりに「なんちゃって証明書」を発行した。
SSL 環境をセットアップしないと、https://localhost/ にアクセスしてもエラーになってしまうのでね。
■ついでに Apache の自動起動設定も
まだ、自動起動設定をしてなかった(Apache 立ち上がってないやん)
[root@PC ~]# systemctl enable httpdCreated symlink'/etc/systemd/system/multi-user.target.wants/httpd.service' → '/usr/lib/systemd/system/httpd.service'.[root@PC ~]# systemctl start httpd
これで、サーバ起動時に Apache が自動起動されるようになる。
■openssl のインストール
openssl はインストールされていないようだ。なのでインストール(dnf コマンド一発だけど(^^;)[root@PC ~]# openssl-bash: openssl: command not found
[root@PC ~]# dnf -y install opensslLast 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 MTransaction Summary============================================================================================================================================Install 1 Package<略>Installed:openssl-1:3.5.5-6.el10_2.alma.1.x86_64Complete!
■秘密鍵の作成
[root@PC ~]# openssl genrsa -out server.key 2048[root@PC ~]# cat server.key-----BEGIN PRIVATE KEY-----MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCbCAkLlIX/Q6miMmV213oUQp99CwfRIQhM3CarHVacyjzeU3K/FFveM8sKKmiozkNh/U4z/xpK4e2KYUkU/5UpMsar4BvsJg3NpLVuzt5McYRwcGqHMdaLzQy9xKlzfy/qGVp/w7LRCSGmvKwBpd98mW7cSquiPqaawASzZcFHaa3EOTHqFDeIBOcUB5Cqj0Zg/LdQBs0Cb0ajWWmZsXyjOhQDqlmMlaEYaS2EfekKife7LcHhYr04KQ4v/A3xGef7o/aeU7vrkgpx...-----END PRIVATE KEY-----
■サーバ証明書(なんちゃって証明書)の発行
有効期限10年とかで作ればいいんだけど、根がまじめなので 1年(365日)で作成する(笑)
[root@PC ~]# openssl req -new -key server.key -x509 -days 365 -out server.crtYou are about to be asked to enter information that will be incorporatedinto 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 blankFor some fields there will be a default value,If you enter '.', the field will be left blank.-----Country Name (2 letter code) [XX]:JPState or Province Name (full name) []:HiroshimaLocality Name (eg, city) [Default City]:HiroshimaOrganization Name (eg, company) [Default Company Ltd]:Net And Field Co, Ltd.Organizational Unit Name (eg, section) []:localhostCommon Name (eg, your name or your server's hostname) []:localhostEmail Address []:[root@PC ~]# cat server.crt-----BEGIN CERTIFICATE-----MIID3TCCAsWgAwIBAgIUPmm2mDtBgMyo3miqzvJ2dvOGEgwwDQYJKoZIhvcNAQELBQAwfjELMAkGA1UEBhMCSlAxEjAQBgNVBAgMCUhpcm9zaGltYTESMBAGA1UEBwwJ...NTRaFw0yNzA5MDEwMDA2NTRaMH4xCzAJBgNVBAYTAkpQMRIwEAYDVQQIDAlIaXJv...-----END CERTIFICATE-----
■適当な場所に証明書を配置 ※取り合えず自分のホームディレクトリ上に作ってるんで
[root@PC ~]# ls -la /etc/pki/tls/private/total 8drwxr-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/certstotal 1176drwxr-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.pemlrwxrwxrwx 1 root root 96 May 27 02:17 01419da9.0 -> /etc/pki/ca-trust/extracted/pem/directory-hash/Microsoft_ECC_Root_Certificate_Authority_2017.pemlrwxrwxrwx 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.confls: cannot access '/etc/httpd/conf.d/ssl.conf': No such file or directory
おや?mod_ssl が入ってない?
インストールを行う。(これも dnf コマンド一発)
[root@PC ~]# dnf install mod_sslLast 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 kInstalling dependencies:libtalloc x86_64 2.4.3-100.el10 baseos 34 ksscg x86_64 4.0.3-2.el10 appstream 51 kTransaction 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_64Complete![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_2026090185,86c85< #SSLCertificateFile /etc/pki/tls/certs/localhost.crt< SSLCertificateFile /etc/pki/tls/certs/server.crt---> SSLCertificateFile /etc/pki/tls/certs/localhost.crt94,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/
にアクセスできるようになる。
