joppotjoppotコピペで絶対動く。2016年1月12日Tweet概要みなさんこんにちはcandleです。2014年の後期にmozillaあたりが主導して、無料のssl証明書作ろうという動きがありました。去年の12月にβ版がでたので、早速試してみました。ちなみに、メージャーアップがあるらしく、今鍵を作ると、今年の3月末までしか使え無いっぽいですね。encryptのssl証明書の取得の仕組みは以下のようになっています。最初に、あなたの公開しているサーバにドメインを紐付けておきます。説明ではhttp://hoge.comというのを例に使用します。encryptのソフトウェアをインストールします。encryptサーバに向けて、ドメイン名を送信します。encryptサーバは与えられたドメイン名を見て、トークンをvagrantのubuntuに返してきます。この時、ドメインが実際に公開サーバに紐付けらている必要はないっぽいです。encryptサーバはドメインにアクセスしていない。返ってきたトークンをあなたが公開しているサーバにセットしてどこからでもアクセスできるようにしておきます。一般にトークンは長いので、無作為なアクセスではそのトークンを取得できないようになっています。encryptサーバに送ります。サーバはあなたが公開しているサーバーにトークンがあるか確認しに行きます。encryptサーバーはipアドレスとドメイン名をもとに、ssl証明書を作成し、vagrantに送信してきます。あとは、このssl証明書をサーバーに設定すればおkです。ところで、なんでsslの取得を公開サーバーでやらないのかという意見もあると思います。encryptが一番ベストに動くのはubuntuだからです。centosやec2のような公開サーバーを使っているともしかするとうまく動かないかもしれないからです。encryptは自動で、必要なパッケージをインストールします。サーバーになるべく不要なものはのせたく無いのは誰でも同じだと思います。実際にやっていきましょう。公開しているサーバがある。このブログではnginxで動いているサーバーで説明します。わかっている人はapacheで応用してできると思います。vagrantがインストールされている。vagrantを立ち上げるubuntuは14.10を使います。13とかでも動くと思います。vagrantのboxが無い方は以下のコマンドでboxを足します。https://github.com/kraksoft/vagrant-box-ubuntu/releases/download/14.10/ubuntu-14.10-amd64.box次にvagrantのディレクトリを作成します。私はホームディレクトリにvagrantというフォルダを作りその中にlets_encryptというフォルダを作ります。lets_encrypt以下のコマンドでvagrantを初期化します。ubuntu14.10Vagrantfileが生成されるので、開いて、ipアドレスのところをコメントインします。"192.168.33.10"保存したら、vagrantを立ち上げます。sshでログインします。sshsshしたら、まずはapt-getをアップデートします。encryptのソフトウェアをダウンロードするにはgitが良いので、gitをインストールします。encryptのソフトウェアをダウンロードします。https://github.com/letsencrypt/letsencryptletsencryptフォルダに移動します。letsencrypt一般に以下のコマンドで手続きが始まります。https://acme-v01.api.letsencrypt.org/directoryこれで起動すると自動的にあれこれやってくれます。たつと下のような画面に成ると思いますメールアドレスを入力しましょう。これはkeyを無くした時に使います。規約を了解するかでてくるので「agree」を選んで、エンターを押します。ドメイン名の入力がでてくるので、公開しているサーバのドメイン名を入力します。http://hoge.comなら「hoge.com」と入力します。IPアドレスをを保存してよいか聞いてくるので「Yes」を選びます。唐突にGUIが終わります。幾つかのコマンドが表示されます。カーソルがまだ待機モードになっていることを確認してくさい。contine」でカーソルが止まっていると思います。これはサーバに必要な設定を行ってからエンターを押すので、絶対にエンター押さ無いください。continue上のメッセージはそれです。多少適当に変更しています。設定などはmkdir、cd、printfの下りを真似すればいけます。上のメッセージではサーバーはpythonを使えばいいよと成っていますが、私の場合はすでに止められないnginxが動いているので、そっちで行います。公開サーバーの設定それでは公開サーバの設定をやっていきましょう。私はec2のnginxでやります。confを記述します。letsencrypt.confletsencrypt.confを開いて以下を記述します。}}公開ディレクトリに移動します。letsencryptこのletsencryptフォルダで先ほど、vagrantで表示された項目を実行します。.well-known/acme-challenge/fewaoijfeowiangeawg-jgioewaj90igaeigjaewqoサーバーを再起動します。restart正しく設定できたかどうか確認するには、vagrantのubuntuに表示された。urlを叩けばわかります。hogeなら以下のようになっています。http://hoge.com/.well-known/acme-challenge/fewaoijfeowiangeawg-jgioewaj90igaeigjaewqoこれにアクセスして、作成したファイルがダウンロードできるかどうか確認します。できればうまくいっています。サーバの設定は以上です。continue」で待機しています。公開サーバの設定ができたので、エンターを押しましょう。問題なく以下のメッセージが出れば成功です。again.鍵は/etc/letsencrypt/live/hoge.comに入っています。/etc/letsencrypt/live/hoge.com/で確認できると思います。privkey.pemのファイルがあります。-laするとシンボリックリンクになっているので、実態はこっちのパスにあるようです。/etc/letsencrypt/archive/hoge.comうまく取得できましたね。まとめここから実際にnginxにsslを設置してhttps通信を行うのですが、それは様々なブログが取り上げているので、私は特に解説しなくてもいいかなと思っています。1つだけあげるとしたら、letsencryptで取得した鍵はprivateとcertだけでは信頼に問題があり、ブラウザで赤いマークがでました。chainファイルも設定したら、うまくいきました。スポンサードリンク「為になったなぁ」と思ったら、シェアお願いします。コメントをキャンセルメールアドレスが公開されることはありません。皆さんこんにちはcandleです。今回は、ほぼ全てのファイルを開くことができるCotEditorのインストールの仕方を書いていこうと思います。みなさんこんにちはcandleです。今回はcreate-react-appで作成したreactプロジェクトをS3にデプロイしてみたいと思います。みなさんこんにちはcandleです。今回はgitのリモートプライベートリポジトリを作ってみたいと思います。リモートリポジトリと言えば、Githubとかbitbucketが有名だと思います。みなさんこんにちはcandleです。今回はsshの接続先のホスト名を短くする方法です。ssh接続は非常に強力なネットワークツールですが、接続先の指定がやや面倒ですね。みなさんこんにちはcandleです。gemを使用して削除してみたいと思います。Sansフォントウェイトのcss書き方まとめプロフィールベンチャー企業のCTOをやってます。大学時代にプログラミングを始め、javaから入門し、C++へて、PHPへと進み、会社ではRailsを使用。環境設定スポンサードリンクjoppotコピペで絶対動く。