ホストAlmaLinux9.4 httpsサーバ、クライアント MacBook Air M2 macOS Sequoia 15.1 での接続(一部変更)

# ホストAlmaLinux9.4 httpsサーバ、クライアント MacBook Air M2 macOS Sequoia 15.1 での接続(玄人編)

[ここをクリックすると他の技術投稿の目次に行きます](https://qiita.com/FUKUTAKA7938/items/2312362e44dbcecd11ca)

#

構成
マシン：MacBook Air M2

ホストOS：AlmaLinux9.4
Webサーバ：httpd
メモリ：2GBで設定
SSD 15GBで設定
内、swapファイルに4GB仕様

クライアントOS：macOS Sequoia 15.1

仮想システム：無料版UTM(macOS用)

※UTMでのAlmaLinux9のインストールと 
httpdのインストールは割愛させていただきます
(仮想システムは、ホストにするOSが対応したらどれでも行けると思います)

注意※/var/www/htmlディレクトリに
index.htmlファイルの
何か簡単なwebファイルを作っておいてください

参考サイトのほぼ、パクリなのでご了承ください

参考サイト:
[httpsの設定とオレオレ証明書(自己署名証明書)の作成](https://qiita.com/miqpim/items/911aa34e128950ec2d09)
[Install Self-Signed SSL for Faveo on Alma Linux](https://docs.faveohelpdesk.com/docs/installation/providers/enterprise/self-signed-ssl-alma/)
[コード日進月歩-p12ファイルことPKCS #12の証明書ファイルに関してざっくりまとめる](https://shinkufencer.hateblo.jp/entry/2019/07/12/000000)
あとは、ChatGPTを参考 

#

# AlmaLinux9.4 サーバ側での設定
# ①mod_ssl(httpdで、httpsを使うためのモジュール)のインストール
`# dnf install mod_ssl`

このモジュールをインストールすることによって
/etc/httpd/conf.d
に
ssl.conf
というファイルができます 

#

# ② 鍵関係のファイル作成手順

https構築には以下の4つのファイルが必要です

1. 秘密鍵の作成(keyファイル)
2. CSR(証明書署名要求)の作成(csrファイル)
3. 証明書の作成(crtファイル)
4. p12ファイルの作成(p12ファイル)

## ディレクトリ/ssl_tempの作成

`#mkdir -m 755 /home/ユーザー名/ssl_temp

にopennssl で作ったファイルを作成していきます

`#cd /home/ユーザ名/ssl_temp`

## 1.秘密鍵の作成
`# openssl genrsa -aes128 2048 > server.key`

mod_ssl を起動させるためのパスワード設定（任意）
※ここからのmod_sslに関するパスワードは、このパスワードを指定します

### オプション説明
genrsa： 公開鍵の指定
-aes128: AES 128 ビットで秘密鍵を暗号化します(256ビットもあるみたいです)

server.key
という秘密鍵ファイルができます

#

## 2.CSR(証明書署名要求)の作成
`# openssl req -new -key server.key > server.csr`
パスワードを聞かれたら、先ほど作った秘密鍵のパスワードを入力します。

### オプション説明
req  :証明書署名要求 (CSR) を作成
-new :新しい CSR を作成することを指定
-key :CSR の作成に使用する秘密鍵ファイルを指定

### そして設定の質問に答えます
Country Name (2 letter code) [AU]:JP
　Common Name までスキップ（無くても動きます）
Common Name (eg, YOUR name) []:XXX.XXX.XXX.XXX(WebサーバのIPアドレスまたは、ドメイン名)
  あとは、スキップでオッケーです

server.csrというCSR(証明書署名要求)ができます

#

## 3.証明書の作成
`# openssl x509 -in server.csr -days 36500 -req -signkey server.key > server.crt`

### オプション説明
x509 :証明書 (X.509 フォーマット) 行うためのコマンド
-in :証明書署名要求 (CSR) ファイル指定します
-days :証明書の有効期間を日数で指定
-req :CSR (証明書署名要求) を入力として扱うことを指定するオプションです
-signkey: 自署名証明書を作成するのに、署名に使う秘密鍵ファイルを指定

server.crtという証明書ファイルができます

#

## 4. p12ファイルの作成
(デジタル証明書とその秘密鍵を一緒に格納するために使用されるものらしく、クライアント側で使います)
`# openssl pkcs12 -export -out server.p12 -inkey server.key -in server.crt`

### オプション説明
pkcs12: PKCS#12 フォーマットを使うためのコマンドです
-export: 証明書と秘密鍵を PKCS#12フォーマットするためのオプションです。
-out: 指定されたファイル名で出力作成
-inkey: 秘密鍵のファイルを指定
-in: 証明書ファイルを指定(-inkeyとペアになるそうです)

server.p12というp12ファイルができます
crtファイルと違い、パスワードが付属されているそうです

＊参考サイトが、 server.* と使われてますので、同様に使わさせていただいてます。

#

サーバ側では、
server.crt
server.key

クライアント側では、
server.crt
server.p12

が使われます

#

## ③ここで、秘密鍵と証明書を標準仕様のディレクトリにコピー
`# cp /home/ユーザ名/ssl_temp/server.crt /etc/pki/tls/certs/server.crt`
`# cp /home/ユーザ名/ssl_temp/server.key /etc/pki/tls/private/server.key`


## ④ssl.conf の設定
`# vi /etc/httpd/conf.d/ssl.conf`

SSLCertificateFileとSSLCertificateKeyFileの項目の設定ファイル名を書き換え

`<VirtualHost _default_:443>　→　<VirtualHost *:443>`


```
<VirtualHost *:443>
　・・・
　・・・
　SSLCertificateFile /etc/pki/tls/certs/server.crt　<--ここと
　・・・
　SSLCertificateKeyFile /etc/pki/tls/private/server.key　<--ここを修正
　・・・
  </Files>
</VirtualHost>
```


#

confの構文があってるか確認
`# service httpd configtest`

syntax OK
とでれば、大丈夫です(AH00558とでているメッセージがありますが、気にしなくてよいみたいです
ちなみに ServerNameディレクティブを指定をしてくださいということです)

#

## ⑤firewalld の設定
`# firewall-cmd --add-service=https`
`# firewall-cmd --list-all`
で、設定されているかどうかの確認
Services: の項目にhttps があればOKです

`# firewall-cmd --add-service=https --permanent`
で、永続的にファイアウォールの設定

## ⑥httpd の起動
`# systemctl restart httpd`
opensslでのserver.crtなどのパスワードを入力
成功したら
`# systemctl enable httpd`

# ⑥クライアント側の設定(macOS Sequoia 15.1)
server.crt
server.p12
をscpコマンドなどで、クライアント側(Mac側)にディレクトリなどを作って、
そこにダウンロードしておいてください

あとは、そのserver.crtをダブルクリックし、キーチェインアクセスを起動して
MacOSのログインパスワードを入力すると、

「ログイン」の項目の「証明書」タブにIPアドレスが名前で、出てくると思います
(でないときは、項目を切り替えたりしてください)

そして、キーチェインアクセスで出てきた証明書を右クリックして、
「情報を見る」→「信頼」→「常に信頼」に切り替えてください
このときmacOSのパスワードを聞かれます

実は、これだけでは httpsにアクセスできません

なので、ダウンロードしてきた
server.p12 をダブルクリック

キーチェーンアクセスでは、
 macOSのパスワード

その後、場合によっては、
server.p12 のパスワードを求められるので
サーバ側で設定したopensslのパスワード
(1.「秘密鍵の作成」の最初に設定したパスワード)
を入力してください

すると、「自分の証明タグ」に同じ名前のものが出てくると思います
ログインの項目の証明書で設定したように、これも右クリックして、
「情報を見る」→「信頼」→「常に信頼」

そして、焦らず、反映されるまで少しだけ時間をおいて、
ブラウザで、 https://xxx.xxx.xxx.xxx(httpsサーバのアドレス)にアクセス

※google chromeでは、反映されてるか確認できます

chrome → 　設定　→　プライバシーとセキュリティ　→　セキュリティ　→　証明書の管理　→　
ローカル証明書
と
ユーザーの証明書
に
でていたら、反映の確認を確認することができます

成功していて、
なお、反映されていない場合は、 ブラウザのキャッシュをクリアした場合に
再度アクセスしたら繋がります

#
参考サイト
[httpsの設定とオレオレ証明書(自己署名証明書)の作成](https://qiita.com/miqpim/items/911aa34e128950ec2d09)
[Install Self-Signed SSL for Faveo on Alma Linux](https://docs.faveohelpdesk.com/docs/installation/providers/enterprise/self-signed-ssl-alma/)
[コード日進月歩-p12ファイルことPKCS #12の証明書ファイルに関してざっくりまとめる](https://shinkufencer.hateblo.jp/entry/2019/07/12/000000)
あとは、ChatGPTを参考 


#
[ここをクリックすると他の技術投稿の目次に行きます](https://qiita.com/FUKUTAKA7938/items/2312362e44dbcecd11ca)