iOSでWebDAVが繋がらなくなった件
とあるアプリを使って、iPhoneでWebDAVをhttpsでやってるんですが、ある日エラーが。
このサーバの証明書は無効です。
“[FQDN名]”に偽装したサーバに接続している可能性があり、
機密情報が漏洩するおそれがあります。
これを解決したお話。
ついでに、Opensslを使ってx509 v3の証明書を作るお話。
自分の端末じゃなかった為、自分の端末で確認してみると問題なくアクセス可能。
iOSのバージョンを確認してみるも、10.3.xxでマイナーバージョンまでは一緒。
では、ということで、自分のiPhoneのアプリをアップデートかけてみたところ発生。
アプリがちゃんと、証明書を本体を承認しないと使えないようになったので、セキュリティ的には良い修正。
というわけで、なんとかしましょう。
OpenSSLを使って、自己署名証明書を使っているから、PCのブラウザから開いても、エラーがでます。
自己署名CA証明書(crt)もApacheに組み込む関係上作ってあるので、
基本的にはこれをPCにインストールしてあげることでエラー回避可能です。
(アクセスした時に、証明書エラーの赤い画面がでなくなります)
同じことをiPhoneにしてあげればOKのはずです。
何らかの方法でiPhoneに送ります。
Webに上げてダウンロードしても良いです。
共有鍵方式なので、誰かにダウンロードされても特に問題はない、です。
気持ち悪い人は、Basic/Digest認証かけるなり、DLしたら削除するなりしましょう。
(僕は気持ち悪いので認証かけてます。)
あとはメールで送るなり、FTPに上げて、FTPアプリでDLするなりお好きな方法で。
【つまづきポイント】 インストールしたら終わりじゃない
というのも、基本的には前はインストールしたら終わりだったんですよ。
iOS10.2までは。
iOS10.3からは、インストールした証明書を有効化する必要があります。
(ちなみに、証明書インストールするところに注意喚起出て来るので、ちゃんと読んでれば問題ないですが。)
(ぼくはきづきませんでした)
設定 → [一般] → [情報] → 画面の一番下 → [証明書信頼設定]
ここで、インストールした証明書を有効化しましょう。
証明書もインストールしてあるのに!!って人は、ココ確認してみてください。
iOS10.2からインストールされてるものは自動で有効になってるかもですね。確かめれないですが。
《参考サイト》
Apple – iOS 10.3 で手動でインストールした証明書プロファイルに関する変更点
【おまけのx509 v3証明書】
IBMのページに、いくつかのモバイルプラットフォームはx509v3じゃないとだめだよ!!
って書かれてたので、上記のやつに気づくまで、これも試してたので、折角なので追記。
もしかしたら、いくつかのモバイル端末はコレじゃないとだめかもなので一応。
(※ちなみに、これでx509v3にした証明書使っても、上記は同様に問題なくアクセスできました)
1.v3certファイルを作ります。
authorityKeyIdentifier=keyid,issuer basicConstraints=CA:TRUE keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment, keyAgreement, keyCertSign, cRLSign
2.コマンドを叩きます
openssl x509 -days 3650 -req -signkey server.key -in server.csr -out server.crt -sha256 -extfile v3cert
以上です。
keyUsageは、とりあえずわからないので、OpenSSLのdocみて全部いれてあるだけです(適当)
必要な人は調べて必要なものをいれてください。
《参考サイト》
IBM Knowledge Center – 信頼されていない証明書を使用した SSL の構成
Qiita – OpenSSLでX.509 v3の証明書を作成する
NTT西日本フレッツ情報サイトへアクセス(IPv4/IPv6) SR-7100VNでの光電話収容