AWS構築|Let’s Encrypt で レッツ暗号化
なにするの?
AWSにのっけたWebサービスをHTTPSでアクセスできるようにする。
HOW TO ENCRYPT on AWS
1.Apache停止
$ apachectl stop
2.Certbotをダウンロード
$ git clone https://github.com/certbot/certbot
3.Certbotの実行(証明書の取得)
$ cd certbot/ $ ./certbot-auto certonly --standalone -d kpter.net -d www.kpter.net --debug
※ AWS上では--debug
つけないと文句いわれちゃう
3.5.Emailアドレスの入力
途中、メールアドレスの入力を求められる。(緊急時の通知や鍵をなくした際の復旧用)
↓できたっぽい。
Requesting root privileges to run certbot... /home/ec2-user/.local/share/letsencrypt/bin/letsencrypt certonly --standalone -d kpter.net -d www.kpter.net --debug Version: 1.1-20080819 Version: 1.1-20080819 IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at /etc/letsencrypt/live/kpter.net/fullchain.pem. Your cert will expire on 2016-10-16. To obtain a new or tweaked version of this certificate in the future, simply run certbot-auto again. To non-interactively renew all of your certificates, run "certbot-auto renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
4.Apacheの設定いじる @ /etc/httpd/conf.d/ssl.conf
- 証明書 /etc/letsencrypt/live/kpter.net/cert.pem
- 秘密鍵 /etc/letsencrypt/live/kpter.net/privkey.pem
- 中間証明書 /etc/letsencrypt/live/kpter.net/chain.pem
<VirtualHost *:443> ServerName kpter.net DocumentRoot "/var/www/html/KPTer-web/lp" SSLEngine on SSLHonorCipherOrder on Header set Strict-Transport-Security "max-age=31536000; includeSubDomains" SSLProtocol -All +TLSv1 +TLSv1.1 +TLSv1.2 SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5 SSLCertificateFile /etc/letsencrypt/live/kpter.net/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/kpter.net/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/kpter.net/chain.pem </VirtualHost>
※ ssl.confに書かないと以下の警告が出た
[warn] _default_ VirtualHost overlap on port 443, the first has precedence
5.Apache再起動
$ apachectl start
以上で完成です!
サービス開発|KPTアプリをリリースしたよ
このあいだ、「KPTer」というKPTのiOSアプリをリリースしました!
業務中にKPTをしている方も多いのではないかと思います。ぜひ一度つかってみてください(^^)
LPも作ってみました♡ kpter.net
コンセプト
振り返り手法KPTをもちいて、プロジェクトメンバー、友だち、恋人、夫婦などで普段いえないことを共有できるシンプルかつ強力な新しいコミュニケーションツール
ありがとうのきもちを、Keepとして。
むしゃくしゃしたことを、Problemとして。
そして、そこからよりよい明日につながるためのTryを考えていきましょう!
なぜ作ろうと思い至ったか
1.新しい働き方が増える時代に置いて、効果的にコミュニケーションがとれる場をつくりたかった
DMM内でもリモートワークのお話が出たりします。リモートワークを採用する会社もこれから増えてくるのではないでしょうか。
そういった働き方の多様化の時代に、アナログな方法のみでKPTを進めていくと臨場感の喪失や手間などからコミュニケーションに支障がでてしまうことがあるのではないかと考えました。
KPTerが仕事環境においてよりみなさんが業務をより円滑に協力して進められるように手助けできればと思います。
2.KPTをより身近なものにしたかった
チーム内でKPTをするようになってから、プライベートでもKPTを行うようになりました。
そうしたなかで気づいたのは、普段自分がいかに相手に気持ちを伝えきれていなかったかということです。
ありがとうの感謝のきもちも、なにがどう悲しかったかも特別なシーンや気合を入れてからしか伝えてこなかったなと自分を振り返って思いました。
仕事場でだけでなく、KPTをもっと身近な存在にすることで家族や恋人、友人とのこころの距離を縮められたら、と考えました。
3.Swiftさわってみたかってん・・・!
It is because we are engineers.
エンジニアの性なのでしょうか、新しい言語とかさわってみたくなっちゃったんです。
サーバー代がかからないというのもたいへん魅力的でした( ´ ▽ ` )
追加予定機能
まだまだ機能たりてないんです・・・(´-ι_-`)
コミュニケーションを取るにはまだまだ足りてない機能がてんこ盛りなので、Ph2.0以降で実装できればと思っています。
- Web ver
- 同期機能
- 共有機能
- 未完了Try一覧 とかとか。
使ってみてくれたひとの中で、もっとこんな機能ほしーい!っていうのがあったら教えてほしいなぁ(´∀`)
CentOS|SSHログイン時にアスキーアートを表示する
なにがしたい
sshでサーバにログインした時に、AAを表示することでどのサーバにログインしたかをわかりやすくしたい。
HOW TO
1.AAを作成
Text to ASCII Art Generator (TAAG)
2./etc/motdに上記で作成したAAを記述
______ _ _ _ | ___ \ | | | | (_) | |_/ / __ ___ __| |_ _ ___| |_ _ ___ _ __ | __/ '__/ _ \ / _` | | | |/ __| __| |/ _ \| '_ \ | | | | | (_) | (_| | |_| | (__| |_| | (_) | | | | \_| |_| \___/ \__,_|\__,_|\___|\__|_|\___/|_| |_| Production 本番
3.試してみる
$ ssh production Last login: Wed Jul 13 15:41:47 2016 from 172.16.100.15 ______ _ _ _ | ___ \ | | | | (_) | |_/ / __ ___ __| |_ _ ___| |_ _ ___ _ __ | __/ '__/ _ \ / _` | | | |/ __| __| |/ _ \| '_ \ | | | | | (_) | (_| | |_| | (__| |_| | (_) | | | | \_| |_| \___/ \__,_|\__,_|\___|\__|_|\___/|_| |_| Production 本番
イエイ!
くれぐれも「STGと間違って本番にデプロイしちゃった☆」みたいなことがないようにしましょう!
Rails|Emailのバリデーション
背景
はじめはemail_validatorを使用していたのですが、
「hogehoge@hoge.com」のように入力された時、うまくバリデーションがかからなく・・・。
あらためて調べてみると、以下の場合はうまくバリデーションがかかっていないようでした。
- 先頭に半角/全角スペース許容してる
- 全角を許容してる
うーむ、困った。
解決方法
1.email_validatorに代わってvalidates_email_format_ofを使用する
- @前は64文字以内であること
- 全角は弾く
- 先頭/email中/末尾の全角スペースは弾く
- email中の半角スペースは弾く
上記ちゃんとチェックしてくれているようです。
2.先頭/末尾の半角スペースを弾く
バリデーションをかける前に、不要なスペースを排除します。
Stringクラスのstrip
は前後の空白文字を削除してくれる強いやつ。
class User < ActiveRecord::Base before_validation :remove_space # バリデーション前に前後の空白文字を削除 def remove_space self.email.strip! end # validations validates_presence_of :email, message: "入力必須です。" validates_length_of :email, in: 0..100, message: "100文字以内で入力ください。", if: :email? validates :email, :email_format => {:message => '正しいメールアドレスの形式で入力ください。'} end
iOS開発|Images can't contain alpha channels or transparencies
iTune Connectの画像登録での一コマ
Images can't contain alpha channels or transparencies
↑ iTune Connectの画像登録ででた注意文言
「App Preview and Screenshots」の画像をリサイズして登録しようとしたときに発生。
原因
画像をリサイズした際に、縦横比が変わってしまったせいで発生したもよう。
比率を変えた際に埋めた部分が透過されているよと怒られているようです(詳しく調べてないのでおそらく)。
解決策
PNG形式で保存したため起こった現象なので、JPGで保存し直すことで解決しました。
Rails|レイアウトを新規で作成する
なにがしたい
Viewを表示する際に、「layout.html.erb」とは別のレイアウトを作成して適応したい。
シチュエーション
上記の方法でerror画面をカスタマイズすると、Viewに対応するコントローラーがないため、「Template Inheritance※」ができない。
そのため、error画面を出す際、メタ情報や読み込むCSSの内容が変わるためレイアウトを別に用意したい。
※ 例)errors配下に_meta.html.erb
を切り、application.html.erb内で以下のように呼び出す。
<%= render partial: 'meta' %>
HOW TO
1.view/layout/error_layout.html.erbを作成
2.application.controllerのエラーページをレンダリングしている箇所で、error_layout.html.erbを指定する
def render_404(exception = nil) if exception logger.info "Rendering 404 with exception: #{exception.message}" end render template: "errors/error_404", status: 404, layout: 'application' render template: "errors/error_404", status: 404, layout: "error_layout" #error_layout.html.erbを指定する end def render_500(exception = nil) if exception logger.info "Rendering 500 with exception: #{exception.message}" end render template: "errors/error_50x", status: 500, layout: 'application' render template: "errors/error_50x", status: 500, layout: "error_layout" #error_layout.html.erbを指定する end
Rails|エラーページのカスタマイズ
なにがしたい
エラーページをいい感じにカスタマイズしたい。
HOW TO
1. view配下にerrorsディレクトリを切り、「error_404.html.erb」と「500.html.erb」を作成 2. application_controller.rbに下記を記述
class ApplicationController < ActionController::Base # Prevent CSRF attacks by raising an exception. # For APIs, you may want to use :null_session instead. protect_from_forgery with: :exception rescue_from ActionController::RoutingError, with: :render_404 rescue_from Exception, with: :render_500 # 404ページをレンダリング def render_404(exception = nil) if exception logger.info "Rendering 404 with exception: #{exception.message}" end render template: "errors/error_404", status: 404, layout: 'application' end # 500ページをレンダリング def render_500(exception = nil) if exception logger.info "Rendering 500 with exception: #{exception.message}" end render template: "errors/error_50x", status: 500, layout: 'application' end end
3. route.rbの最後に下記を記述 その上に書かれているパス以外のリクエストが来たら、404ページに遷移させます。
get '*path', to: 'application#render_404'