著者アーカイブ takahashi

takahashi 著者:takahashi

ブロックチェーン=フィンテック ではない。 ブロックチェーンの本当の可能性

昨今話題になっているブロックチェーン。
皆さんも、少なくとも名前だけは一度は聞いたことがあるかと思います。

このブロックチェーンですが、ただ額面を記憶しておくためのみの仕組みではありません。
ブロックチェーン技術とは飽くまでデータの分散記録システムであり、仮想通貨の額面以外にも、使い方によっては様々なデータを記録することができるようです。

巨大銀行はなぜブロックチェーンを研究しているのか? – NEC

こちらの記事の紹介例では、”本人確認と医療、保健を含む履歴、情報の所有権”をブロックチェーンを使って記録しておくことで、従来のように一定の場所にデータを保持しておく必要がなくなります。
例えば、万が一政府のもつデータセンターが攻撃や災害で機能停止したとしても、ブロックチェーン上にデータが保存されていれば、戸籍や住民票などのデータを保持することができ、利用者がそのデータを取り出すことも可能になってきます。

また、現在ウェブ上には、あるサービスで取得したIDを他のサービスでも利用することができる仕組みがすでにありますが、元のアカウントデータはある一点(例えばGoogleでアカウントを取得すればGoogle)が管理する形になりますが、(当分はあり得ないとは思うが)例えば万が一、GoogleがGoogleアカウントの仕組みを廃止してしまえば、自分のGoogleアカウントの情報は抹消され、利用できなくなってしまいます。

もっと身近な例であれば、最近、Twitterアカウントの大量凍結が問題になりましたが、もしそのTwitterアカウントを別のサービスのログインに使っていたら惨事になってしまうことは容易に想像できます。

もし、これらのアカウント情報を何処かの1サービスに保存しておくのではなく、ブロックチェーン上に保持しておけば、たとえTwitterが凍結されようが、Googleが無くなろうが自分のアカウント情報は半永久的に保持されます。また、ブロックチェーンを使えばアカウントの管理権限を完全に利用者が持つことができるため、特定の業者への不用意な情報の提供もなくなり、しばしば取り沙汰されるアカウントのプライバシー問題も解消できる可能性があります。

データの分散化といえば、少し前にMastodonの出現が大きな話題になりました。


運営者を分散化させることで、利用者は自分が信用のできるサーバーを自由に選ぶことができ、サービス全体としてみれば、一団体のみに管理されることなくサービスを利用できる点で非常に画期的な仕組みです。

しかし、トゥートの分散化はできても、ユーザーアカウントについては各インスタンスでの管理となっていて、分散化がされていません。現状では、インスタンスをまたいで利用したい場合はそれぞれのインスタンスでアカウントを取得しなおす必要があります。
逆に言うと、あるインスタンスで取得したアカウントは、そのインスタンスがサービス終了してしまえば利用ができなくなってしまうという問題が発生してしまうことになります。
例えば、もしここでブロックチェーンの仕組みにユーザーアカウントの情報を保持をしておくような仕組みを作れば、ユーザーアカウントの分散化も可能になり、一つのアカウントで複数のインスタンスへログインする仕組みも(実際やろうとするのは簡単ではないかもしれないが)実現可能になるかもしれませんね。

色々と考えてみると、1運営者によってデータの扱いが左右されない、という観点からみればいままでのインターネットの常識を覆してしまうような非常に大きな可能性を秘めているのではないのかな、と感じました。

今後、ブロックチェーンを使ったどんなサービスが出てくるのか、注目していきたいですね。

takahashi 著者:takahashi

サーバー環境の検証に何かと便利な自己証明書(オレオレ証明書)をWindowsで作る方法

少し前まで、SSL証明書は少々高価なものであり、個人のサイトでは正規のhttpsに対応したサイトははあまりありませんでした。
どうしてもSSL通信が必要な場合は自己証明書(オレオレ証明書)を作成してインストール…なんてこともよく行われていました。

最近になって、sslの重要性が見直され、Let’s Encryptのような無料で正規のSSL証明書を取得できるサービスも出てきたので、もっぱら最近ではわざわざ自己証明書を発行する機会は少なくなりました。

そんな中、先日久しぶりに自己証明書を発行する機会が。

社内でのWebサービスのテストに使用するために発行することになりました。

Let’s Encryptを搭載しても良かったのですが、更新が面倒という点と今回は社内での確認にのみ使用するのでそこまでやらなくていいだう、ということで、今回は自己証明書になりました。

久しぶりすぎて、手順がうろ覚えだったのでやり方を復習。

今回はこちらのサイトを参考にしました。

オレだよオレオレ認証局で証明書つくる – Qiita

こちらの記事では認証局を作る、という前提で説明されていますが、今回は一つだけ証明書があれば問題ないので、ルート証明書をそのままSSL証明書として利用します。
自分の場合、今回はWindowsでサクッとやりたかったので、今回はWindows用パッケージマネージャーChocolateyを使用してopensslをインストールしました。
(chocolateyの入手についてはこちら

chocolateyでopensslを導入するには、Windows上のシェルで次のコマンドを入力します。

 choco install openssl.light

これだけでインストールできます。
あらかじめ管理者権限に昇格しておくことをお勧めします。

インストール完了したら、コマンド画面を一度開きなおします。
これでopensslが利用可能になりました。

次に、秘密鍵を生成します。

  openssl genrsa -aes256 -out c:\path\to\dir\cakey.pem 2048

権限があれば好きな場所に作成できます。
色々聞かれますが、なるべく正しい情報を埋めてみてください。
特にコモンネーム(Common Name:cn)が実際にテストしたいドメイン名と異なっていると無効になってしまい、エラーがでます。

“c:\path\to\dir”は実際に秘密鍵を作成したいディレクトリに置き換えてください。

次に、csr(サーバ証明書要求)ファイルを作成します。

  openssl req -new -key c:\path\to\dir\cakey.pem  -out c:\path\to\dir\cacert.csr

csrとは簡単に言うと、認証局に対して、「こんな内容のSSL証明書が欲しい。正しいというサインくれ」というような要求を認証局に対してリクエストする仕組みです。
今回はこの認証局も自分になるので、このcsrファイルに対して署名してみましょう。

openssl x509 -days 3650 -in -out c:\path\to\dir\cacert.csr -req -signkey c:\path\to\dir\cakey.pem  -out c:\path\to\dir\cacert.crt

生成されたcacert.crtをクリックすると、ウインドウが出てきますので、”証明のパス”をクリックします。

“信頼されたルート証明機関のストアに存在しないため…”というエラーが出てくるかと思います。
信頼されているルート証明とそうでないものの違いは何かというと、単にOSの”信用できる業者リスト”に登録されているかいないかの違いのみです。
従って、自分で作成したオレオレ証明書も、”信頼されたルート証明機関”に登録してしまえば、登録したPCでは本物のSSLと同様に利用することが可能です。

登録するには、先ほどのウインドウの”全般”タブをクリックすると

“証明書のインストール” というボタンが出てくるのでこれをクリック

自分しか使わないのであれば”現在のユーザー”のまま次へを押します。

“証明書をすべて次のストアに配置する”を選択し、”参照”をクリック

“信頼されたルート証明書”を選択してOKをクリックします。

再度証明書をクリックして開き、”証明書のパス”タブの証明書の状態が”この証明書は問題ありません”と表示されていれば作成は完了です。

あとはこの証明書と秘密鍵を検証環境に設定すればSSL通信を利用することができます。

現在では、テスト環境でもLet’s Encryptを使うのがベストですが、更新の手間が面倒な場合や、サーバーがインターネットからアクセスできない場合はオレオレ証明書を使う必要が出てきます。

どうやってSSL証明書ができているのかを理解するのにも役立ちますので、是非試してみてください。

takahashi 著者:takahashi

Mastodon rake タスクが実行できないときの対処法

以前、Mastodonのインスタンスをさくらのクラウドで構築した際の話です。
この時の構築はさくらのクラウドの自動セットアップスクリプトを用いての作業でした。
さくらのクラウドでは、仮想マシン作成時にセットアップスクリプトを設定しておくと、各セットアップ作業を全自動で行ってくれる非常に便利な機能があります。
この機能を使って作成すると、作業を本来必要な作業を大幅に省いて構築ができるため、数時間でサービスの立ち上げまで行うことができます。

このインストール作業自体はさほど問題はなかったのですが、問題が起きたのはセットアップ後の作業。
Mastodonのデイリー処理 mastodon:daily タスクをcronに登録する前に動作テストを行ったのですが、

こんな形でエラーになってしまいます。
Mastodonの情報は大体検索すると出てくるのですが、このエラーは探せど探せど解決方法が見つからない…

結局、本家のIssuesを確認したらあっけなく対策方法が見つかりました。

各rakeコマンドを実行する前に

export RAILS_ENV=production

コマンドを実行するだけです。
実際に試してみたところ、

これだけであっけなく実行できてしまいました…

環境変数を指定しているだけなので、毎回入れるのは忘れそう、めんどくさい、という方は、
rakeコマンドを実行するユーザーの

~/.bashrc

に同じexportコマンドを書き加えてしまえば、指定する必要がなくなります。

調べてみると、初めて触った時にそこそこハマるポイントのようですね(汗


この記事は以前自分自身で公開した記事を修正したものです。

takahashi 著者:takahashi

Androidスマホでレンズに傷がついてしまった時の対処法

最近、以前使っていたスマホ(AQUOS Phone 303SH)をカメラ代わりに使う機会がふえてきているのですが、
ある日、カメラを起動すると、カメラで映している画像が曇っているように不鮮明になってしまっていました。
慌ててカメラ部分をメガネ拭きで拭いたのですが、一向に良くならず…

どうやら、カメラレンズ自体に傷がついてしまっているようです…

このスマホは既に現役を引退しているので、キャリアの修理保証も利きません。
途方に暮れつつもダメもとで調べていたところ、こんな記事を発見。

スマートフォンカメラの写りが悪くなっても○○するだけで復活!! – Tanweb.net

なんと、歯磨き粉をクロスや綿棒につけてカメラレンズを拭いてやるだけで、カメラがよみがえるというのです。

実際に自分でも恐る恐る試してみましたが、確かに、磨く前と比べて、傷がつく前の鮮明さが戻ってきました。

Android搭載の機種のカメラには、コーティング剤が使われているようなのですが、傷がつくとこのコーディング剤が一部剥がれてしまい、ぼやけた写真になってしまうとのこと。

歯磨き粉には研磨剤が入っているので、歯磨き粉をレンズにつけてこすることで、はがれかかったコーティング剤をすべてはがしてくれ、再び綺麗な写真が撮れるようになるという仕組みのようです。

ただ、コーティング剤をはがしてしまうと、今度こそ直に傷がついてしまうので要注意です。
本当ははがしたらすぐにコーティング剤を塗らないといけないのですが、自分の場合保護シートにカメラ保護シートがあったので、それをすぐに貼って保護しました。

もう修理保証も切れていて…修理前に最後の悪あがきで試したい…という方は試してみるといいかもしれません。

ただ、あくまで最終手段で、場合によっては悪化させてしまう可能性も0ではないため、自己責任でお試しください….

takahashi 著者:takahashi

知らないなんて勿体ない!!! 手軽にリアルなARを楽しめる Windows標準搭載のARアプリが面白い!

一時期なんとなーく鎮静化ムードだったAR(MR)周りですが、最近になってAppleがiOSで”AR Kit”というARライブラリを公開してから、Pockemon GOなどでリアルなARとして使われるようになるなど、にわかに活気がつき始めている印象があります。

そんな中、MicrosoftはWindows10発表と同時にMicrosoft Hololensなどを発表し、他の企業がなかなか進められなかったARに、かなり力を入れて来ていました。
現在もMicrosoftはWIndowsのAR機能に力を入れ続けているようで、一つ前のメジャーアップデート “Creators Update”で3Dオブジェクトの簡易作成機能を搭載した”3Dペイント”を搭載し、現在の”Fall Creators Update”ではさらにいろいろな3D関連の機能が追加されました。

今回はその中で簡単にリアルなARが楽しめるWindows 標準アプリ  “Mixed Realityビューア”を紹介したいと思います。

遊び方は超簡単。

まず起動すると上のような謎のアヒルのキャラクターが現れます。
ドラックしてぐりぐり動かすことで、3Dオブジェクトをいろんな角度から眺めることができます。

ここまでであればただの3Dビューア―アプリなのですが、面白いのはここから。

ウインドウ上部のメニューから”Mixed Reality”アイコンを選択します。

するとカメラが起動し、手が出てきてカメラに写っている平面をクリックするように促されるので、実際にクリックしてみます。

するとカメラで写っている平面に乗るような形で、先程のキャラクターが現れます!

すごいのは、カメラを動かすと、キャラクターもちゃんとその動きに追従して動く点。
マーカーもないのにここまで綺麗に追従してくれるのは、なかなか面白いです。

好みのアングルが決まったら、右側の白丸をクリックまたはタップすると、撮影もすることができます。

このキャラクターですが、デフォルト以外にもいろんなキャラクターやオブジェクトが用意されています。

飛行船や

建物。

恐竜や

なんとペガサスまで!!!
これらはすべて画面上部にある”Remix 3D”から入手できます。

これらのオブジェクトを使ってちょっと遊んでみました。

こちらは先ほどのデフォルトのアヒルのキャラクター。

腕に乗せられてますがなんだか不満そうです(笑

ふくろうのキャラクターをペン先に止まらせてみたり…

ペガサスを手に泊まらせてみたり!

極めつけは…

手乗りドラゴン!!!
ファンタジー好きなら一度はあこがれるシーンが、簡単に撮れちゃいます!!!

Remix 3Dですが、自分がつくったオブジェクトもアップロードができるようで、この仕組みが活性化していってオブジェクトの数が増えていったらもっと面白いことができそうな気がします!

残念なのは公式でこれらの機能の宣伝がまだあまりされていない点。

マイナーな機能になってしまうのは本当にもったいないぐらい面白い機能なので、興味を持った方は是非一度試してみてはいかがでしょうか…!

Windows Mixed Reality Viewer – Microsoftストア

 

takahashi 著者:takahashi

mac OS/Linux でもSQL ServerをGUIで操作できるツール “SQL Operations Studio”

最近、MicrosoftのSQL Serverを使ったシステムを作っています。
SQL Serverは高機能である分、MySQLなどと比較すると複雑でわかりづらい点が多い印象があります。

そんなSQL Serverデータベースを簡単に編集できるようにするために、SQL Serverに標準で”SQL Server Management Studio”というツールが付属しています。
テーブルの構成やストアドプロシージャの定義、すでに入っているデータの抽出や権限の設定など、すべてGUI上から操作することができます。
恐らく、SQL Serverを使ったことがある方は、一度は触っているのではないかと思います。

このManagement Studioですが、現状動作するのはWindowsのみで、macOSやLinuxなどの他OSなどの場合はFreeTDSなどのパッケージをインストールしたうえでSQLを直打ちしないといけないため、Windowsでの開発と比較すると、かなりやりづらい状況でした。

最近、Microsoftは一部の製品はクロスプラットフォーム(とくにOfficeやVSCodeなど)化する流れが起きており、最近になってSQL Server用の公式ツールでクロスプラットフォームで利用できるものが発表されました。

Microsoft SQL Operations Studio がアナウンスされました – SEの雑記

名前は Microsoft SQL Operations Studio

VSCodeとVSCode向けMSSQLプラグインがベースになっているようで、GitHub上でオープンソースとして公開・開発がされています。

現在プレビュー版が公開されているということなので、実際に手持ちのMacにインストールしてみました。

こちらが起動直後の画面。
見た目は完全にVSCodeです。

Management Studio同様に、左側にDBの内容がツリー形式で表示されています。

勿論SQL文の実行もOperations Studio上で実行可能。

ストアドプロシージャの作成や編集なども行えるようになっていました。

上記の記事では”Operations StudioはManagement Studioの後継ではない”という説明がされていましたが、基本機能はそこそこ押えている印象です。

現時点ではまだ日本語化も不完全でしたが、VSCodeベースということなので、Operations Studioも徐々に日本語化されていくのではないかと思います。

SQL Server本体もすでにLinux上で動くバージョンが出ているようですし、今後はWindowsでなくても開発しやすい環境が整っていくかもしれませんね。

SQL Server Operations Studioのプレビュー版は こちらから入手できます。
https://docs.microsoft.com/ja-jp/sql/sql-operations-studio/download

takahashi 著者:takahashi

ChromeがMacの通知センターに対応していたので設定してみた

先日、ネットでこんな記事を見かけました。

Google ChromeがMac OS Xでネイティブ・プッシュ通知に対応
http://gigazine.net/news/20160407-chrome-native-push-notifications-mac/

Mac版のChromeがMacの通知センターに対応していたとのこと。
早速設定してみました。

chromeのアドレスバーに
chrome://flags/#enable-native-notifications

と入力します。


こんな感じの画面が出てくるので、”ネイティブ通知の有効化 Mac”の”有効にする”をクリックします。

この後、Chromeを再起動すると、Chromeのネイティブ通知が有効になります。

Chrome独自のカード型の通知ではなく、Macの通知センターのものに変わっています。

以前、Chromeには独自の通知センターが搭載されていたのですが、現在はこれが削除されてしまっており、一度見逃した通知を再度表示させることができなくなっていました。

しかし、今回のネイティブ通知を有効にすると、Chromeからの通知の履歴がMacの通知センター残るようになり、再確認ができるようになります。

これは便利ですね。

現在はMac版にのみ実装されていますが、WindowsもWindows10から”アクションセンター”という、Macの通知センターと同様の機能が搭載されています。
Windows版のChromeもぜひネイティブ通知に対応してほしいです。


この記事は、自分が過去に別のサイトに投稿したブログ記事を編集したものです。

takahashi 著者:takahashi

日本でGoogle Nexusシリーズの後継ともいうべきGoogle監修ブランド “Android One”

以前、Androidを普及させるために、Google自身が設計し、メーカーのプリインストールアプリを極力排したブランド、”Nexus”というのがありました。
余計なものが入っていない、ほぼ”純正”のAndroidを使うことができる上、端末のサポート期間内は常に最新のAndroidへ更新することが保証されているという、Androidユーザーにとっては非常にうれしい内容で、メーカーによる動作制限やムダ機能にうんざりしていたユーザーを中心に、非常に人気がありました。

僕も普段使っているスマホとは別に、Nexus7を購入しました。
当時としてはスペックもそこそこ高く、サイズ感も大きすぎず小さすぎない形で使いやすく、とても気に入っています。
現在はOSのアップデートからは対象外になってしまったものの、まだまだ現役の端末として利用しています。

そのNexusシリーズですが、残念ながら提供終了が発表され、2016年10月ごろには、公式のオンラインストアからも削除されました。

グーグル、「Nexus」ブランド終了予定、ネクサス端末の販売を一斉終了、アップデートなどサポートは今後も行うとアナウンス – GPAD

その入れ替わりになる形で、Googleの新しい現行のブランド”Pixel”がスタート。
こちらはNexusと打って変わって、Androidの機能をフルに生かせるようなハードウェア構成の”フルスペック”な端末です。
お値段もNexusよりも高くはなるのですが、”Google純正Android”の恩恵を最大限に受けることができるような内容になっています。

速報:Google Pixel 2、Pixel 2 XL発表。今回もスマホ史上最高評価のカメラを搭載 – Engadget

ただしこの端末、記事にもあるように日本では未発売、さらに将来的な発売も未定となっている上、日本での技適を取得していないので、国内で手に入れて使用するのは絶望的です。

Nexusがない今、今後日本ではGoogle純正のAndroidが入った端末は手に入らないのか…と思ってしまいますが、実は現行のものでGoogle純正のAndroidが利用できる端末があります。
“Android One”というシリーズです。

Android One – Wikipedia

Android Oneは、主にアジアなどの開発途上国、新興国市場での流通を目的とした、ミドルからローエンドの低価格帯スマートフォンである[1]。これらの国では裕福層が少なく、高価な端末を購入できる人が少ない。逆に安い端末となると性能が低すぎる上にアップデートが提供されない問題が起きている。Googleはこれらの問題を解消するために、Android Oneを市場に展開した[2]。プロジェクトは2014年よりスタートして以降、世界21ヶ国で展開している[3]。

開発は、各国のパートナーとGoogleが協力し、その国のニーズにあった高品質なハードウェアと、Googleが考えるAndroid体験を実現するソフトウェアを兼ね揃えたスマートフォンを作る。ハードウェア設計から部品の調達までGoogleが行っており、各メーカーから販売されるAndroid Oneは、全て同等の性能を有している。

とあり、NexusやPixelのように純正なAndroidとアップデートを利用できるうえに、価格の割にはハードウェア構成もどちらかというとハイエンド寄りになっている端末が多いのが特徴です。

日本ではY!Mobileをはじめとするキャリアなどで入手できます。

Android One – ワイモバ学園

同シリーズの中でも個人的に特に気になったのが京セラ製のX3という端末。

今までの京セラ製の端末は、どちらかというとローエンド向けで、性能よりも価格重視な印象が強いのですが、このX3という端末はその真逆のフルスペックモデルになっていて、さらに今時は少なくなってしまった赤外線ポートもついているというちょっと面白い端末です。デザインもお洒落です。

ローエンド志向の京セラにこのレベルのハイスペック端末を出させてしまうAndroidOneに、Nexusシリーズに似たポテンシャルを感じました。
自分は丁度SoftbankからY!Mobileへ移行する予定なので、次に変えるとしたらこの辺りの端末かな、と考えています。

ただ、”Android One”は上記にもあるように”発展途上国向け”のブランドです。
Googleから日本がそのようにみられているのかな、と考えてしまうとちょっと複雑ですし、個人的には本命はPixelシリーズなので、是非次のPixelシリーズは日本でも発売されてほしいなぁと思っています。

最近、どのAndroid端末も代り映えしなくなってきてつまらないなーと感じていたのですが、まだまだこれから面白い動きが出てきそうですね。

Pixel2/Pixel2XL – Google

takahashi 著者:takahashi

macの起動時にブートローダーメニューを追加する方法

自分のもっているmacは、BootCampを使ってWindowsとmacOSのデュアルブート環境を作ってあります。

OS切り替えの際、過去のバージョンは環境設定やWindowsのBootCampメニューから次に電源を入れたときに起動するOSをあらかじめ指定できたので困らなかったのですが、最近macOSのファイルシステムがAPFSになってから、Windows側で次回起動するOSでmacOSを選択することができなくなりました。

したがって、デフォルトになっているOSではない方のOSを起動する場合、起動時にoptionキーを押しながら電源を入れないとOS選択画面が出てきません。
毎回、OSを切り替えるたびにOptionキーを押さないといけないというのはちょっと煩わしいので、せめて起動時に毎回OSが選べる画面をb出せないかなとさがしていたところ、こんなアプリを発見しました。

rEFInd

です。
このアプリを導入しておくと、起動時に写真のOS選択画面が表示されるようになります。

インストール方法は、まずmacをリカバリモード(command+R)で起動し、上のプルダウンメニューから
ユーティリティ->ターミナルをひらきます。
下記のコマンドを入れます。

csrutil disable

そのあとプルダウンメニューの林檎マークから、macを再起動します。

再起動すると、通常のモードでmacが起動するので
The rEFInd Boot Manager: Getting rEFInd
でA binary zip fileをクリックしてrEFIndを入手し、解凍します

中に”refind-install”
というファイルがあるので、これをターミナルで実行すると、インストールされます。

その後、再起動すれば、起動時にブートローダーの画面が表示されるはずです。

動作したことを確認したら、再度command+rを押しながら起動し、リカバリモードから

csrutil enable

を実行しておきましょう。

とても快適に使えてますので、おすすめです。

参考:
MacBookProにOS X, Windows 10, Ubuntuをトリプルブート

takahashi 著者:takahashi

[要注意] nginx バーチャルホストで複数ポートかつSSL有効化したら平文通信できなくなった話

家のサーバーのnginxの設定をしていたら完全にドジってはまったのでそのメモ。
自分のサーバー環境は諸事情でリバースプロキシ経由でウェブサーバー本体に接続する構成に変更中でして、Nginxをリバースプロキシとして設定していました。
構成は以下の通り。

自分のサイトは、もともとそれぞれサブドメインを割り当てたバーチャルホストが複数稼働している環境だったため、nginx側もバーチャルホストに対応すべく下のような設定にしていました。

すると

BadRequestのエラーが。
いろいろ試してもエラーが解消されず頭を抱えていたのですが、調べていたら以下のサイトを発見。

nginx連載6回目: nginxの設定、その4 – TLS/SSLの設定 – インフラエンジニア way
https://heartbeats.jp/hbblog/2012/06/nginx06.html

>sslディレクティブをonに設定すると、SSLが有効になります。ただし、listenディレクティブでsslパラメータを指定したときには不要です。

>ssl on;

>listenディレクティブにsslパラメータを付けると、そのポートでSSLを有効にして待ち受けるようになります。そのポートに関して後述するsslディレクティブをonにしたのと同じ動作になるため、sslディレクティブの記述は不要になります。

>listen 443 ssl;

あっ、なるほど…!
ssl on;
の記述をしてしまうと
server{}
内で定義されている全ポートにsslが有効になるので、80番ポートでアクセスしてもssl通信と解釈されてしまい、エラーが出ていたようです。
443ポートだけsslにしたい場合は

listen 443 ssl;

とだけ指定しておけば443ポートだけsslを有効にできるようです。

てっきり
“ssl on;”
を入れないとsslが有効にならないものと勘違いしていました(苦笑

さっきの設定を修正すると以下のようになりました。

これでnginxを再起動したところ、無事80番ポートの平文通信と443ポートのSSL通信両方ともできるようになりました。

分かってしまえばなんともくだらない間違いですが、大分焦りました。

もっと勉強せねば…


この記事は、以前筆者が書いた記事を一部変更したものです。