generalistからspecialistへ

一点集中化計画

ペーパープロトタイプ

関連記事


  • どのアプリを作るか決めたら、大体のざっくりした画面を「ペーパープロトタイプ」を作成する
  • 「大体」作るが、この時精度が高いほど、後の工程に思い切り影響がある
  • 「画面に何が必要なのか、合計何枚必要なのか」を洗い出す
  • ペーパープロトタイプ作成ソフト、balsamiqを使用

LP

f:id:sdk-quadra:20210113102729p:plain

アカウント作成

f:id:sdk-quadra:20210113102741p:plain

ログイン

f:id:sdk-quadra:20210113102801p:plain

ワークスペース選択

f:id:sdk-quadra:20210113102813p:plain

ワークスペース追加1

f:id:sdk-quadra:20210113102826p:plain

ワークスペース追加2

f:id:sdk-quadra:20210113102836p:plain

ワークスペース追加3

f:id:sdk-quadra:20210113102847p:plain

チャンネル一覧

f:id:sdk-quadra:20210113102858p:plain

チャンネルにメッセージ未設定時

f:id:sdk-quadra:20210113102912p:plain

メッセージ作成

f:id:sdk-quadra:20210113102927p:plain

各種設定

f:id:sdk-quadra:20210113102940p:plain

  • 上記のようなペーパープロトタイプを作り、開発開始
  • 開発が進むとslack apiについても徐々に分かって来て、工夫することにより最終的に上のアカウント作成、ログイン、ワークスペース選択、ワークスペース追加1〜3、各種設定の画面は削り、3枚が残った。

アプリidea

関連記事


卒業制作のアプリアイデアを考える。ここに載せている以外も含めると約100ぐらいで、最終的に3つに絞った

考えたアイデアリスト

一撃glacier

  • ワンクリックでAWSのglacierにPCをバックアップする
  • 実現方法分からず。stepを5つぐらいに増やしてもできないと思ったのでボツ。

Real Dungeon

  • Google mapのapi使って、ゲームみたいにまだ行った事がない所は暗く、訪問済みの所は明るくする

f:id:sdk-quadra:20210113101406p:plain

  • PCでGoogle mapのjsonをエクスポートすれば、これまでの訪問した場所のデータは描画できる
  • だが、リアルタイムで、というのが難しい
  • 暗くする方法が難しい。google mapにベクターマスクをかけられるらしいが、これだと内側でまだ訪問してない所も明るくなってしまう。
    • かなり難しそう。ボツ。

Travel strategy

  • 長期の旅行時は、移動しながら日毎にホテルを変えたい
  • 日付を毎回切り替えてホテルを探すのが面倒
  • 行きたい都道府県は決まっているが、詳細に決まってない時が多い。
  • 同じ場所を往復したくない。効率よく回りたい。
  • 地図に日付のピンを打って、周辺で空いてるホテルを表示したい
  • ホテル情報のapi引けるか調べる。じゃらんやbnbは引けないが、引けるのがあるかも。候補に入れる。

散歩ルート提案アプリ

  • おすすめの散歩ルートを表示する。
  • 人通りが少ない、自然が多い、川沿い、などで提案
  • すでにあった。ボツ。使ってみたが良かった。

縦書き変換ツール

  • textをペーストすると縦書きにしてくれる
  • 背景を選択できる
  • 区切りを入れられる
  • すでにあった。ボツ。

gmail縛り

  • 午前中はクリエイティブな仕事に集中する為、mailは開けなくする
  • 会社のルールとして設定してもらう
  • これを自作アプリとするのはどうなのか。ボツ。

ベールはがし

  • アカウント名からその人のリアル写真をネット上から探す
  • 多分この人、という感じで表示する
  • 実現方法分からず。それに倫理的にどうか。ボツ。
  • 精度低くていいなら単に画像検索すれば良さそう

ガソリン平均cheker

  • 車で走っている時に、見つけたガソリンスタンドの価格が安いかどうか分からない。平均値を知りたい。
  • 全国のガソリン平均価格をリアルタイムで更新する
  • すでにあった。ボツ。

あの家いくら

  • 街を歩いていて、目の前の家がいくらか知りたくなる時がある。
  • 現在地から周辺の賃貸情報や土地の価格などが分かる。
  • すでにあった。ボツ。

バージョン管理メモ

  • ファイル自体は一つ
  • 変更履歴を保存しておく
  • 変更履歴も含め一括検索できる
  • すでにあった。ボツ。google docs使えば良い。

1日1手しか指せない将棋

  • しっかり考えて打つ
  • 需要あるかどうか。。

レビューフォーム生成ツール

  • スクリプトタグ貼るとレビューフォーム設置できる
  • amazonみたいに星つけてコメントレビュー
  • DB保存
  • すでにありそう。要確認。

I'm home

  • 家に帰るとBGMが鳴り始める
  • スマホの位置データで判定
  • すでにある。ボツ。IFTTT使えば良い。

遅読解消アプリ

  • 文章をどこかから引用
  • 読む時間を測る
  • 問題を出す。内容を理解できているか。
  • 速くなっているか日々確認。
  • 1分500文字が平均。
  • 問題を作り続けるのか。アイデア自体なんか微妙。

死ぬまであと何日

  • 時間を無駄にしない為のアプリ。
  • 画像で、何ヶ月、で表示(逼迫感あるので)
  • 毎週メッセージ
  • 寿命90歳で計算
  • すでにあった。まさにこういうのを想定していた。ボツ。

f:id:sdk-quadra:20210113101436p:plain

ルイゴスティー

  • フレーズを別の表現に言い換える。生徒や同僚の評価コメントをするのに、ついみんな同じ内容になってしまいがちなのを、微妙に変えたいとか、文章書く時同じ言い回しの連続を避けたいという需要から。
  • フレーズを投げて、mecabとかで品詞分解して、類語辞典から候補を持ってくるとかでできるかも。候補に入れる。

人レーダー

  • 対象の人(gmailなどで登録)が近付いたらLine鳴らす。
  • 本人の了承を必要としない。
  • 倫理的にどうか。ボツ。
  • 本人の了承ありでいいならgoogle mapでできる。

横断検索

  • Note、reminder、テキストエディタなど、どこにメモしたか忘れる。
  • それらを一括で検索できるようにしたい。
  • Alfredでできそう。ボツ

1週間分のテレビ録画

  • TV付属の番組表からの録画は、反応が遅くてストレスがたまる
  • PCで番組選択して1週間分(番組表は1週間後まで取得できるので)素早く録画予約したい。
  • 外部機器が別途いりそう。PCで録画予約するならPCに録画することになりそう。ボツ。

今日もbokete

  • slackでgiphyというのがある
  • /giphy cat とかすると、4gifsから動画を引っ張ってくる

f:id:sdk-quadra:20210113101458p:plain

  • こんな感じで、これのboketeとかどうか。もちろんslackで。アイスブレイクという名目で偉い人が投下するとか。
  • あまりにもパクり過ぎか。検討。

Chatインテグラ

  • slackとlineとchatworkを一つにする。
  • 得意先がchatwork使ってて切り替えるのが面倒なので。
  • すでにあった。ボツ。
  • franz、使ってみたがめちゃくちゃ便利。素晴らしいアプリ。
  • ちなみにchatworkは現在25万社が、slackの日本でのアクティブユーザは100万人、Lineのアクティブユーザーは8400万人らしい(chatworkの比較単位違うけど)

f:id:sdk-quadra:20210113101556p:plain

Slack only

  • chatworkもLineも、すべてslack上で済ませる
  • franzは、1つのwindow内で各アプリに切り替えられるようになっているが、切り替えるのではなくてslackからchatworkやLineにメッセージを送るというアプリ。
  • スタンプやファイル送信の時はひと工夫いりそう

Slack de step

  • ステップメールのslack版。ユーザーによって送信するコメントを事前に設定できる。
  • Channelに参加してから7日以内のユーザにだけ「何か困っている事はありますか」と自動送信するとか。
  • 9/30の企業説明会に参加する、と答えた人にだけ、zoom linkを送信するとか。
  • 経験上、みんながいるchannelより、1対1の方が返信率かなり高い。
  • できたら送信したコメントに対して、既読率、文中リンククリック率を出したい。その数字をみて送信内容などを改善していく。

強制脱出

  • 1時間30分経つと強制的にPC操作が効かなくなり、癒し音楽が流れ始める。インターバル15分。
  • 仕事は休憩を入れた方が遥かに効率がいい為。focus boosterの強制版。
  • 頭脳労働は1日4時間ぐらいでいいと思っている。8時間とは肉体労働の話。頭の方が何倍も疲れる。無駄な時間が多すぎないか。警鐘を鳴らしたい。
  • どうやって実現するか、、

バイク駐車場

  • 単車の駐車場が近くにあるならLINEで知らせる
  • バイク用の駐車場はまだ検索に弱いイメージがあったが、、ボツ。普通にバイク駐車場でgoogle mapすれば良い。

Quiverフォーマット変換

  • 他のメモアプリからquiverにインポートする時、フォーマットを揃える。
  • ボツ。evernoteをインポートしたが、結構精度高かった。さらに精度上げるアプリを作るにしても、本家がそろそろ対応しそう

そのパトカー何用

  • 目の前を通ったパトカーがどんな用事で現場急行しているかを知るアプリ
  • ボツ。警察がAPI提供していない。webページで公開している事件は警察が後日フィルタリングして掲載しているもののみ。

登山アプリ

  • ヤマレコAPI提供している。これを使って自分が使いやすいようにカスタマイズする。
  • ボツ。すでに本家アプリが結構使いやすく、自分が作っても本家の広告なしバージョンになりそう。

曲名を割り出す

  • 今かかっている曲の名前、概要をテキストで出力。googleのサービス使ったらできそう。
  • ボツ。すでにある。shazam。かなり精度高い。

Quora千本ノック

  • Quoraで1000回答し、1000フォロワーを目指す。
  • どんな回答がパフォーマンス高いかなどの統計を記録する。
  • ボツ。apiの提供は中止された。

フォーマットコンバータ

  • 公式で読みにくいドキュメントがある。それを一定のフォーマットに変換する。
  • ボツ。safariのリーダーを使えば良い。

家族追加シミュレータ

  • これまで人類が飼った事があるペットのブログをリスト化、表示する
  • 「クマ ペット」「ヤギ ペット」でgoogle検索した時にヒットする記事をindexする。
  • 「カメレオン ペット」とか普通は考えつかない動物もペットにしている、その記事をユーザーが考えなくても表示してあげるのが特徴。google のcustom search apiを使えばできそう。
  • ボツ。アイデアとして弱いと感じた。

損益分岐点

  • PCなど買おうとしている商品がどれくらいでペイするかを計算する。
  • ボツ。計算方法が複雑過ぎる。商品を限定しないとできない。

帰れ公式へ

  • google検索するときに、公式サイトだけがヒットして欲しい
  • 検索optionで<検索ワード> inurl:https://docs.ruby-lang.org/という風にinurlつけたらいいが、面倒だし複数の公式を見たい時は大変
  • すでにあった。ボツ。programmable seach使えば良い。

アプリ:リサーチ(郵便番号自動入力)

関連記事


  • スクールが要望しているアプリ「郵便番号を入力したら、自動で住所が入力されるアプリ」について調査する。

何が難しいか

  • なぜ郵便番号から住所を割り出すのが難しいのか。 データを食わせて表示するだけのように見えるが、そうではないのか。

そうではない理由1

  • そもそも郵便番号は、郵便局が発行する
  • 郵便番号は、郵便局が毎月updateする
    • 市町村の合併、土地の区画整理、ビルやマンションの建築が日本全国で常に行われている為
    • どれくらい変わるのか
      • 毎月10件追加し、10件削除するぐらいの量(ざっと見た所)

そうではない理由2

  • 郵便局が発行しているcsvのフォーマットが複雑
    • 例えば、以下のように1つの郵便番号で複数の住所を表す場合、1〜4丁目と範囲で書いている

f:id:sdk-quadra:20210113091711p:plain

  • 範囲で書かれてない所もある

f:id:sdk-quadra:20210113091728p:plain

  • 上記は一例(詳細)だが、これよりもっと複雑なのが他にもたくさん。
  • なので、既存の自動入力機能のほとんどは、上記でいう北品川、で止めて、__丁目の部分は表示しない。
    • 郵便番号だけでフルに住所が入る体験を、まだ誰もした事がないと思う。

すでにgemが存在するか

  • 存在する。似たようなアプリは既に存在するが、スクール側から特に以下の項目は満たして欲しいとの事。
    • 1: 前回との差分が分かる。
    • 2: gemを提供する。
    • 3: 郵便番号を入力したら都道府県・市区町村のプルダウンが勝手に決定されるUIのnpmも提供する。
    • 4: 常にメンテナンスされている。

jp_prefecture

  • 既存のgemであるjp_prefectureを触って見る。
  • 都道府県コードと都道府県名を変換するライブラリであって、郵便番号を入れたら住所が自動入力される、という訳ではなさそう。

jipcode

  • 既存のgemであるjipcodeを触って見る。
  • 郵便番号から住所を表示できる
  • 毎月CIで更新される

jipcode-address_locator

YubinBango

  • YubinBangoを触って見る。
  • 郵便番号から住所を表示できる
  • jsで動く
  • 毎月自動更新

どうするか

  • 上記の要件1〜4の内、3以外は既に満たされていると思った。
  • 3の為にこれを卒業制作として作るかどうか...

結論

  • アプリ「郵便番号自動入力」の制作は中止

アプリ:リサーチ_既存アプリを使って検証

関連記事


使い勝手を検証

  • 住むサポのアプリを実際DLして使ってみる
    • こういったアプリのほとんどは実際賃貸契約した時に発行された番号を入力しないと使えない
    • 以下は傷を報告できるレオパレス21のアプリ。契約時の番号がないと進めない。

f:id:sdk-quadra:20210113084500j:plain

  • 住むサポも以下のような画面になるので、同じだと思っていたが、、

f:id:sdk-quadra:20210113084551p:plain

  • 適当に打つと進めた

f:id:sdk-quadra:20210113084606p:plain

f:id:sdk-quadra:20210113084617p:plain

  • 肝心の、入居時に撮影した写真の扱いについて聞く

f:id:sdk-quadra:20210113084625p:plain

  • 本当に無料なのか。無料ならどこで利益を得ているのか

f:id:sdk-quadra:20210113084635p:plain

  • との事。電気やガスの手続き代理が無料なのはイメージできていたが(ガス会社などがキャッシュバックなどのキャンペーンをいつもやっているので)、賃貸の傷報告も無料なのか? 無料ならどうやって利益を出しているのかが謎だった。
    • アプリ内で案内している「24時間サポート」などが有料だから、キャッシュポイント(売上出す所)はそこだと思っていたがそれだけではなかった。
    • 事例を作る事ができるから無料」という部分で理解できた。
    • しかも「トラブルの時は仲介に入ってくれる」という部分で、このUSP(独自性)に自分個人は勝てないと判断。なのでこのアプリの開発は中止
  • アプリを実際使って、よく分かった。
  • ちなみに住むサポの写真撮影のUI

f:id:sdk-quadra:20210113084643p:plain

f:id:sdk-quadra:20210113084653p:plain

  • 画像に入っている日付が重要で、住むサポがこの日付を保証する事で業者への説明材料にする。(退去時に写真を撮り、日付だけ過去に修正したと思われない為に)
  • ただ、画像に入れたコメントは一度入力したら修正できない。(日付が変わるから?)

f:id:sdk-quadra:20210113084703j:plain

結論:

  • アプリ「引っ越したときに、部屋の傷の報告書を作成するサービス」の制作は中止

アプリ:リサーチ_既存アプリの現状調査

関連記事


入居者管理アプリ

  • 入居時に傷の写真をアップしたり、メモしたりするアプリは「入居者管理アプリ」という名前で世間に存在する。
  • しかしそれらは管理会社が、そのアプリ提供会社と契約しないとエンドユーザー(入居者)は使えない
    • 契約には導入費用と、別途月々の利用料が必要

フォーマットが決まっている場合

  • 物件によっては、入居時の状態をチェックリスト形式で記録し送付させるタイプのがある。
    • その場合は指定されたフォーマット + このアプリで写真を撮り、さらに証拠を強化する、という使い方になる。
      • アプリで作成したpdfは相手に印刷 or メールで送信しておく事
        • 相手がスパム扱いになり自動でゴミ箱に入って、30日経ったら自動で消えるので、今はもう確認できない、などと言って来た時のために、自分が送信したメールは保存しておく必要(送信日時が重要)。

管理会社が入居者アプリを導入しない理由

  • 費用
  • 導入しても入居者に使ってもらえない可能性(特にお年寄り
  • アプリの通知をオフにされると案内に気付かれない
  • そもそも賃貸不動産業界が、全体的に超アナログ
  • 様子見
  • など

その他

  • 実際入居者管理アプリを使ってみたいが、アプリDL後、入居者契約番号を聞かれるなど、実際契約していないと進めない
  • 住むサポは物件の傷を撮影をする、という機能自体は使えた。
    • しかしその内容は業務提携している不動産会社でないと共有できない。2020年9月現在、業務提携している不動産会社は20社との事だが内訳は不明。どんな物件でもこのアプリを使えるようになるにはまだ時間が掛かりそう。

アプリ:リサーチ_概要調査

関連記事


  • 作ろうとしているアプリが、必要とされているかを調査する
  • 今回は「引っ越したときに、部屋の傷の報告書を作成するサービス」について調べる
  • このアプリの
    • リサーチ
    • このアプリを作る理由
    • いつまでに作るか(リリースまで)
    • どう売るか(リリース後)

について考える。

アプリの概要

引っ越しをした際、自分が住む前にあった傷の報告をするが、それが結構面倒。それを解決するサービス。

  • 間取り図をアップロード
  • 傷のある場所(間取り図)に印を付ける
  • 傷の写真をアップロード
  • 傷についてのメモも書ける

こういうpdfをWebから作成できるアプリ↓

f:id:sdk-quadra:20210113083619p:plain

リサーチ開始:背景

  • 2020年4月1日に、賃貸契約を含む債権(お金を受け取る権利等)関係の規定が、120年ぶりに改定された。(アプリリリースの話題に使えそう)
  • 平たくいうと、「原状回復義務と敷金に関するルールが明確化」したので、退去時にお金が帰って来ないというトラブルが(ちょっとは)減る(かもしれない)。
  • 改定されたからもう大丈夫、という事ではなくて、逆に言えばそれほどよくトラブルが起こっているという事。
  • 自分が去年引っ越した時、退去費用20万取られた。激怒した。親身になってアプリを作れそう。

よくある間違い

  • 以下はfalse
    • 【入居者が負う原状回復義務】=【部屋を借りた時の状態に100%戻すこと】
    • 経年劣化、自然損耗部分も入居者が負担する。
  • 以下はtrue
    • 【入居者が負う原状回復義務】=「入居者の故意による過失の補修費用のみ
    • 壁の画鋲の穴は大家負担
    • 自然光による壁紙の日焼けや色あせは大家負担
    • 震災による損傷は大家負担
    • 玄関のドアの鍵は大家負担(例外あり。契約書を確認する事)
    • 畳が1枚汚れているから全部取り替えるので全負担を請求する大家の主張は間違い。1枚のみ払えばOK
    • 「入居から退去までの通常の経年変化による損耗は、すでに賃料に含まれているので、賃借人の負担する所ではない」

数字的なデータ

  • 原状回復(退去時)にまつわるトラブルは毎年1.3万件以上(泣き寝入りや、嫌だが結局払ったなど含めればもっと増える)
    • 引っ越し自体は年間約200万件
  • 交通事故と比較
    • 保有者と事故の割合
      • 日本の車保有数:8000万台
      • 事故数:年間40万件
      • (警察に報告していない事故を含めればもっと増える)
  • 賃貸も車も、大体0.5 ~ 1% が事故る
    • 3人に一人がトラブルという業者も(住むサポ
    • 一般的に、車の保険は需要がある。なので退去時のトラブルに対する保険(証拠作成ツール)にも需要があると言えるのではないか(更に要調査)

損益分岐点

  • アプリを有料にするならいくらか
    • 自分が開発に2ヶ月費やすと仮定
    • 自分のプログラマとしての給与
      • 現時点での自分の能力を会社に損をさせない(得もさせない)レベルと仮定(給与 = このアプリの売上)
      • ざっくり月給手取り30万と仮定
        • ざっくり設備費、保険費、などで+10万と仮定
        • (先輩社員のレビューの価値など測れないのでここでは書かない)
      • ざっくりアプリ リリース半年目以降から黒字に転じると仮定(半年で80万(人件費2ヶ月分)の売上 = 月13万)(会社のモデルに依存)
    • 1user 1300円(買切)なら月100人(継続課金か買切かは会社に依存)
  • 販売方法はどうするか
    • 会社のビジネスモデルに大きく依存する為計算不可能
      • 例:会社の顧客リストで紹介(バックエンド(<=マーケティング用語のバックエンド) = 既存客に販売。通常はこれ)
      • 例:PPCで販売(ただしこの場合はフロントエンド(<=マーケティング用語のフロントエンド) = 新規客獲得目的なので無料、または100円で売る = 価格はLTV(顧客生涯価値)に大きく依存)(できれば100円。カード情報取れるので)
      • どんな商品でも結局売り方次第(売り方例:余計な出費による「喪失の恐怖」「怒り」といった本能を刺激するなどのマーケティング手法)(選択肢として販売専門の業者に外注する)
        • 別途セールス担当者と相談
      • 例:コンテンツマーケティング(ブログとか。難易度高)(かなり長期戦 + 不確実性高い為普通やらない)(成功すれば広告費なしで新規客獲得(ただし結局SEOなどgoogleに依存。上司判断))

リリース & アップデート

  • このアプリのコアは「退去時に損しない。無駄な費用は払わない
  • このコアなアイデアに対して、市場が反応するかを計測
    • リリース後1週間 ~ 1ヶ月で反応があれば保守する。
    • 全く反応がなければアップデートしない。終了し、別のアプリ開発に移る。問題になりそうなら顧客に返金するなどして次に移る。
    • または売り方の訴求を変える
      • 別途セールス担当者と相談
  • リリース時期は引越しが他の月の2倍ある3 ~ 4月に。

懸念

  • 保険、もしもの為に、などの商品は売るのが難しい
    • 誰も自分が当事者になる(事故る)と思ってないので。
    • 「万が一の事があるので、物件のキズの証拠写真を撮っておきましょう」という訴求は良くない。
    • これしないと損する、という訴求にする(これしたら100万円もらえる、よりこれしないと100万円取られると言われた方が、人はすぐに行動する)
  • 賃貸物件によっては報告のフォーマットが決まっている場合がある。
    • その時は決められた用紙に記入し、かつこのアプリを使って写真を撮り詳細に記入すれば、より安心。という訴求を加える。

競合

  • レオパレス21はアプリがある。
    • (使うにはレオパレスとの賃貸契約がいる為、挙動は未検証)
    • ユーザーのレビューは300件で星平均1.6(ログインできない、画像アップできないなど根本的な所)(2020年8月時点)
    • 他の賃貸業者にはこういったアプリはない(更に要調査)

サイトにSSL設定(nginx)し、オレオレ証明書を発行する

サイトにSSL設定する

server {
    listen       443;
    server_name  example.jp;

    ssl                  on;
    ssl_certificate      /etc/nginx/cert.pem;
    ssl_certificate_key  /etc/nginx/cert.key;
}
  • ドメインSSL有効にする
  • certificateファイル(pem)、certificate_keyファイル(key)が必要
  • pem, keyはcrtなど別の拡張子の場合もある(pemとcrt違い)
server {
    listen          80;
    listen          443 ssl;
    server_name     example.jp;
    ssl_certificate /etc/nginx/cert.pem;
}
  • この時、ssl  onと書かない。書くと80に対してもsslをonしてしまうから。

その他、SSL関連はserverディレクティブに対して以下ができる。 - 使用するSSLのバージョンを指定できる - 書き方:ssl_protocols SSLv3 TLSv1; - 暗号スイート: 複数の暗号技術の組み合わせを指定できる。 - 書き方:ssl_ciphers HIGH:!aNULL:!MD5; - 暗号スイート利用時、サーバーが使いたい暗号スイートを優先して使う - 書き方:ssl_prefer_server_ciphers on; - SSLセッションキャッシュ(サーバー負荷を減らす)を指定できる - 書き方:ssl_session_cache shared:SSL:10m;(キャッシュサイズ10M) - 書き方:ssl_session_timeout 10m;(タイムアウト10分)

オレオレ証明書とは

要するに 「認証」も自分が担当するという事.

用語 - .csr: 認証局に署名をリクエストする為のファイル(証明書署名要求CSR: Certificate Signing Request) - 中にはSignature Algorithm(確かにこれは私が要求(または発行)するファイルです)が書かれているSignature Algorithm: sha1WithRSAEncryption - 確認するにはcsrファイルをテキストとして開く。例:$ openssl req -text < server.csr - .crt: サーバー証明書。飛んできたcsrに対して、自身が持ってる秘密鍵で署名してcrtを発行し、要求者に返す - .key: 秘密鍵認証局が持ってる。オレオレの場合は自分が持ってる - Let's Encrypt: 無料でサーバー証明書発行してくれる所 - 証明書有効期限は90日だが、多くはレンタルサーバーなどが自動更新してくれる

csrファイル内には Signature Algorithmが1つ(要求者のサイン)
crtファイル内には 2つ、(要求者 + その要求に対して発行者のサイン)
書かれている。
crtにはIssuer(どの認証局が署名したか)が書かれている(オレオレの場合はsubjectと同じ内容が入る)

証明書発行の手順

さくらVPSでLet's Encryptを設定

まず概要を掴む

image.png

  • 設定を進められるように、一応先にさくら側のfirewallの443接続を許可しておく

    • ufwを使っているので、ufwコマンドで443追加 $ sudo ufw allow 443、statusで確認$ sudo ufw status、一応reload $ sudo ufw reload image.png
  • Let's Encryptから証明書得る為に使うtoolcertbot-autoをDLする

  • DLしたcertbot-autoを使って、Let's Encryptに証明書を作成してもらう image.png
    • $ sudo certbot-auto certonly --webroot -w /var/www/html/195cm.tokyo -d 195cm.tokyo --email sadaka556@gmail.com
    • 規約に同意するか?の質問が来る。agree. image.png
      • IMPORTANT NOTES: Congratulations! になれば処理完了 image.png
      • ls -l /etc/letsencrypt/live/以下にpemファイルができているはず
        • 一般ユーザーでログインしてる時、この/etc/letsencrypt/live/にcdしようとして$ sudo cd /etc/letsencrypt/live/しようとしてもできない。
          • sudoは一回きりrootで実行するコマンドで、cdは「移動」なので、権限必要なフォルダに移動する時は、移動後もroot権限でないといけないから、実質できないという事。その時は$ su -とかする。
      • pemファイルがあるのを確認したら、sites-available のファイルを編集する$ sudo vi /etc/nginx/sites-available/195cm.tokyo image.png
        • 編集後 reload $ systemctl reload nginx
        • ブラウザ確認、OK。 image.png
          • 期限が3ヶ月後になってるのが分かる
        • しかし、この処理後、http://195cm.tokyoにアクセスするとhttp://www.195cm.tokyoというようにwww付きにリダイレクトされるようになった。 image.png
        • 443からのアクセスしか受け付けなくなったからだろうか、80も追加してみる。 image.png
        • 80追加後、http://195cm.tokyoにアクセスしてもhttp://www.195cm.tokyoへリダイレクトされなくなった。 image.png
        • この時、まだSSL設定していないwww.195cm.tokyohttpsでアクセスするとどうなるかhttps://www.195cm.tokyo
          • https://195cm.tokyoに転送された image.png 設定が存在しなければうまい具合に処理してくれるのかな。 (※追記: 一番上のserverディレクティブの内容が実行されるっぽい)

オレオレ証明書を作る

Let's Encryptってオレオレじゃないよね??

SSLhttp://195cm.tokyo SSL : https://www.195cm.tokyo オレオレSSL : https://www1.195cm.tokyo

としたい。が、すでにhttps://195cm.tokyoでLet's EncryptでSSL発行してしまった。

Let's EncryptのSSLを失効させる

なので/etc/nginx/sites-available/の設定をコメントアウトするが、その後もアクセスできてしまうことがたまにあるので、気持ち悪いから完全に証明書失効させてみる。

  • revoke で失効させられるみたい$ certbot-auto revoke --cert-path=/etc/letsencrypt/archive/195cm.tokyo/cert1.pem
    • 他にも、fullchain1.pemprivkey1.pemも同様にrevokeして、最後$ certbot-auto delete -d 195cm.tokyoしないといけないと思ったが、最初のコマンド1つで全部やってくれたっぽい。
    • これで証明書は失効した(と思う)

このあと、www.195cm.tokyo の方で、Let's EncryptのSSL取り直した。が、、、 - https://www.195cm.tokyoでつなげるようにはできたが、、 image.png - http://www.195cm.tokyoでつなぐと、195cm.tokyoの方のページが表示されてしまう、、 image.png

  - 行き場がないアクセスは`/etc/nginx/sites-available/`内の一番上にあるserverディレクティブの内容が効くっぽい
      - `www.195cm.tokyo`を、httpsしか受けない設定にしている状態で、`http://www.195cm.tokyo`にアクセスすると、一番上に書いているserverディレクティブのrootである`/var/www/html/www1.195cm.tokyo`が読まれた

image.png image.png


やっとここからオレオレ証明書作成

オレオレSSLのURL : https://www1.195cm.tokyo

秘密鍵や証明書リクエストなどはどこのフォルダにいれるのか。 とりあえず、にあるようにetc配下に入れた

$ openssl genrsa 2048 > /etc/nginx/conf.d/ssl.key/server.key
$ openssl req -new -key /etc/nginx/conf.d/ssl.key/server.key > /etc/nginx/conf.d/ssl.csr/server.csr
$ openssl x509 -days 3650 -req -signkey /etc/nginx/conf.d/ssl.key/server.key < /etc/nginx/conf.d/ssl.csr/server.csr > /etc/nginx/conf.d/ssl.crt/server.crt
  • そして/etc/nginx/sites-available/の該当箇所に以下を記述するがエラー image.png

    • 書き方変わった?以下のようにするとエラー消えた(ssl_certificate の所) image.png

      - オレオレSSL URL : `https://www1.195cm.tokyo`にブラウザでアクセスすると、、 
          - **この証明書は有効ではありません。**( **ホスト名が一致しません**) と表示された。
      
      image.png
          - **全く偽装できてないではないか**。これであってるのかな?
              - あ、自分のmacに[avast](https://www.avast.co.jp/free-mac-security)いれてた。これを停止して再度アクセスしてみる。
              - **自己署名ルート証明書**。**この証明書は第三者によって検証されていません**。と表示された。ちょっとは偽装できた?
      

      image.png

  • 以上で完了。