再接続してから試してみてください。ネットワークはじめにOpenVPNを使用してiPhoneをVPN接続しているのだが、スリープ中は切れてしまったり、なぜか一日に一回くらいの頻度で勝手にVPNの接続がオフになってしまったりして、どうも安定しないので、調べてみたことの話。設定の変更方法iPhoneの"設定"アプリを開き、最初のページを下までスクロールするとインストールしたアプリ一覧が出てくるので、そこから"OpenVPN"を探してタップする。アプリを開いてもほとんど設定をいじることはできない。この設定はアプリを開いても何もアナウンスされないので意外と気づきにくい。いう項目をオンにするという解答が多かった。これはデフォルトではオフになっている。わからなかったので調べたら海外のこちらのサイトにはこう書かれていた。スリープ中でもずっとVPNに接続している的な意味合いなのだろうと思い、とりあえずオンにしておいた。オンにしたあとにスリープしたりすると、前と変わらずVPNの接続は切れてしまった。オンにしたときはVPNに接続されていた状態だったので、設定が反映されていなかったのかもしれない。自分の環境ではなぜか一日に一回くらいの頻度でVPNが勝手にオフになる(手動でオンにしないといけない)ので、VPNに再接続した。VPN接続がオフになった状態から再接続して設定が反映されたのか、スリープしても切れなくなったように感じる。「感じる」というのは、ときどき長くて3時間くらい接続されていてもやっぱり切れてしまったし、一日に一回接続がオフになってしまう現象が解消されたかはまだ未検証なので断言はできない。等)に切り替わったときにVPNが切れていないことに気付いた。今まではWi-Fiからモバイル通信、モバイル通信からWi-Fiに切り替わるときにVPNが一時的に切断されてしまっていた。その場合は自動で再接続されるものの、できればずっと接続状態を維持してほしいと思っていた。オンにしていると、モバイルとWi-Fiの切り替わりのときにVPNが接続されたままになるから、たぶんそういうことなんだろう、という記事をここに書いている途中で、スリープ中でもVPNが切れなくなったように感じはじめた。書こうと思っていたことがずれてしまったけど、これからVPNがオフになったり途中で切れたりしないかどうか検証していきたいと思う。モバイルとWi-Fiの切り替わりでVPNの接続状態が維持されることは検証済みなので、オンにしておいて損はないと思う。あと、オンにしたら、VPNを一旦切断して再接続しないと設定が反映されないようなので注意。設定するように紹介されている。こちらも変更しておいた。pullが通らなくなりました。pullしようとするとこんな感じのエラーが出ます。exists.直前に鍵ファイルの場所をいじっていたりしたので原因はそれで間違いないなと思っていたのですが、GitHubの認証にも通っているのになんでエラーになるのかな?と数分悩んでしまったのでメモを残したいと思います。詳細.ssh/configには以下の設定を追加しています。closed.と表示され、GitHubのSSH認証が成功します。これなら何の問題もないのですが、ぼくはこの前、秘密鍵と公開鍵をまとめるために、defaultというディレクトリを作って、その中にid_rsaとid_rsa.pubを保存したので、configの設定を以下のように書き換えました。githubとすれば、同じように認証が成功します。pullなどすると、認証エラーになってしまいます。Gitはデフォルトの鍵ファイルを参照する理由は単純で、Gitは~/.ssh/id_rsaを認証の鍵として使用するからです。ぼくはGitHubで認証が通ったので、GitHubをリモートリポジトリとして設定したリポジトリでGitを使うときにも同じパスを参照してくれるだろうと思っていました。GitHubの認証に通っていればGitでも同じくSSHでの認証ができるものと思っていました。実際には違って、GitHubとの認証では、たしかにconfigに書かれた設定を参照しますが、Gitの諸々のコマンドではデフォルトの鍵(~/.ssh/id_rsa)を参照してしまうので、そこに鍵ファイルがなくてエラーになってしまったというのが原因でした。解決方法は簡単で、認証に使う鍵を~/.ssh/id_rsaに置いておけばOKです。単純なことですが、ネットでエラーを調べてもこの手の凡ミスを紹介しているサイトは見つからなかったので、同じように悩んでいる人の参考になれば幸いです。Ghostはじめにぼくが愛用しているブログシステムであるGhost。Ghostを利用しています。Ghostでは、config.jsを編集することで設定をいじることができます。urlという箇所に自分のURLを書いておくと、そのURLでGhostが使えるようになるわけですが、ここのURLにhttps://ではなく、http://と書いておくと、Ghostのブログ内のすべてのリンクがhttp://で表示されます。リンクがすべてhttp://になっていても、Nginx側でリダイレクトするので結局はhttps://でアクセスされるわけですが、せっかくHTTPSに対応しているのにリンクがすべてhttp://になっちゃうのは気持ちが悪いし、Twitterのシェアもhttp://とhttps://が混在してしまったりしてすっきりしません。そこで、config.jsのurlをhttps://にしたいのですが、なぜかhttps://とするとリダイレクトループが発生してしまい、アクセスできないという問題が発生します。その解決法がわからずずっとhttp://のまま利用していたのですが、今日やっとその解決法をネットで見つけたのでメモとして残しておきます。Nginxの設定を追加まさにビンゴな答えが紹介されているブログを発見しました。loop説明が英語ですが、やっていることはシンプルで、locationディレクティブにproxy_set_headerを一行追加するだけです。$scheme;}これによってGhostが正しいプロトコルの設定を認識できるようになるらしいです。追加したら、Nginxを再起動します。reloadNginxを再起動するとリダイレクトループが発生しなくなり、リンクもすべてhttps://で表示されるようになります。Apacheの場合も上記のサイトで紹介されているので、そちらを参考にしてください。ちなみにGhostのconfig.jsを編集したあとはNginx同様にGhostを再起動しないと設定が反映されないので忘れずに。自分のサイトでALPNが有効かどうかは以下の3つの方法で確認できます。Test」を使用するOpenSSLコマンドを実行する1つめ拡張機能をChromeにインストールするだけで準備OKです。ALPNが有効であり、かつHTTP/2が有効である場合はこの拡張機能の稲妻アイコンが青くなります(非対応の場合は灰色です)2つめWebサイトにアクセスしてALPN対応かどうか確認したいサイトのURLを入力して「Test」ボタンを押します。出ればALPNに対応していることがわかります。3つめopensslコマンドが使用できるマシンで以下のコマンドを実行します。example.com:443example.comの箇所を確認したいURLに置き換えます。negotiatedと表示されます。ALPNはサポートされていません。ところが、OpenSSLのバージョンがALPNに対応していても、なぜかALPN非対応と表示されてしまう問題に直面しました。Webサーバ(Nginx)を再起動してもダメでした。解決策ぼくの場合は以下の2つが原因でした。NginxがALPNに対応したOpenSSLを使用していなかったサーバ自体を再起動する必要がある1つめNginxやOpenSSLをyumやaptなどのパッケージマネージャで更新した場合は問題ないのですが、自分の場合は、NginxもOpenSSLも、ソースからダウンロードしてビルドしていたので、NginxがビルドしたOpenSSLを参照してくれていなかったのが原因でした。ソースからビルドしたNginxで、同じくソースからビルドしたOpenSSLを使用するためには、Nginxにインストールでオプションをつけて、もう一度ビルドし直す必要があります。Nginxのソースがあるディレクトリに移動して、以下のコマンドを実行します。--with-openssl=ソースからダウンロードしたOpenSSLのディレクトリのパスOpenSSLは公式サイトからtarball(.tar.gz)をダウンロードして、圧縮ファイルを展開します。その展開したディレクトリをパスとして指定します。Nginxをソースからビルドする方法については以下の記事を参考にしてください。Nginxでレスポンスヘッダの一部を隠蔽する方法これでインストールすると、指定したOpenSSLのバージョンを使ってNginxをビルドできます。それを確認するには以下のコマンドを実行します。YYYYのように、自分がダウンロードしてきたOpenSSLのバージョン(1.0.2以降)が表示されていればOKです。Apacheの場合はまた違うと思いますので、各自で調べてください。ビルドが成功したら、Nginxを再起動してください。reload2つめこれは非常に単純な話なのですが、Nginxを再起動しただけでは、OpenSSLのバージョンを変更してもそれが反映されないみたいです。OpenSSLを新しいバージョンにしたほうに反映させるコマンドがあるはずですが、自分はそれがわからなかったので、最終手段としてサーバそのものを再起動してしまいました。サーバを再起動するので、再起動後に自動起動するように設定していないデーモンプロセスを再び起動させる手間があってめんどうくさいですが、これが一番確実かと思われます。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。