サーバはj***、digital oceanのvps
Ubuntu
opensslのconfigは /etc/ssl/openssl.cnf
/etc/pki/CA に移動する。
ここで全部やる。
openssl.cnfを /etc/pki/CAにコピーする。
openssl.cnfを編集
[ CA_default ]
dir = . # Where everything is kept
private_key = $dir/cakey.pem # The private key
[ req_distinguished_name ]
国とかcityとかのデフォルト値を入れておく
v3_ca
というファイルを作って下記を記載し、署名時に使う
(opnessl.cnfの[v3_ca]セクションに書いたら行けると思ったがだめだったので)
basicConstraints = critical, CA:true
keyUsage = critical, cRLSign, keyCertSign
subjectKeyIdentifier=hash
#これをやっておく
touch index.txt
echo 00 > serial
#ca証明書のcsr発行
openssl req -new -key ./cakey.pem -out ./ca.csr
※openssl.cnfにkeyの場所を書いたつもりだが効かないので指定した
なぜ効かないとわかったかというとパスワードを聞かれたから
#CA証明書のCSRにサイン
openssl ca -in ca.csr -selfsign \
-notext -config openssl.cnf -outdir . \
-extfile v3_ca -out cacert.pem\
-startdate 241101000000Z -enddate 251031235959Z
いつもつけていなかったが、-notextを指定すると読める情報が書かれない(あっても問題ない)
-extfile v3_ca がさっきのCA情報
これもいつもやらないが、-startdate -enddateを明示的に指定。
指定しないと作った時間になって切りが悪いのでこっちの方がいい。
openssl x509 -in cacert.pem -text
中身を確認
Version: 3 であること
下記があること
X509v3 extensions:
X509v3 Basic Constraints: critical
CA:TRUE
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
※この後別のcentos9のサーバでCA証明書を作ったが上記オプションがなくても問題なく使えた。
#iPhoneにCA証明書をインストール
証明書をテキストにコピーし、拡張子.crt (.pemでもいいはず)にして
メールでiPhoneに送る。
証明書をiPhoneにダウンロードして開き、インストールする。
(私はapple watchを使っているので、iphoneとapplewatchのどちらにインストールするかと聞かれた)
※私はiPhoneの言語を英語に設定している
すると、Settings > General > VPN & Device Management の、
DOWNLOADED PROFILE に表示されるのでタップして開くと、Not Verified と表示されている。
中身を見て、「Certificate Authority」がYesになっていること
Versionが3であること
を確認
最初に戻って、右上のInstallをタップ
ここで終わりではない。
General > About > Certificate Trust Settings > ENABLE FULL TRUST FOR ROOT CETIFICATES
で、インストールした証明書を信頼する。