<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Web on ゲンゾウ用ポストイット</title><link>https://genzouw.com/entry/category/web/</link><description>Recent content in Web on ゲンゾウ用ポストイット</description><generator>Hugo</generator><language>ja</language><lastBuildDate>Sun, 29 Aug 2021 08:19:19 +0900</lastBuildDate><atom:link href="https://genzouw.com/entry/category/web/index.xml" rel="self" type="application/rss+xml"/><item><title>コマンドラインから新しいウィンドウで Chrome ブラウザを開きたい</title><link>https://genzouw.com/entry/2021/08/29/081919/2762/</link><pubDate>Sun, 29 Aug 2021 08:19:19 +0900</pubDate><guid>https://genzouw.com/entry/2021/08/29/081919/2762/</guid><description>&lt;h2 id="はじめに"&gt;はじめに&lt;/h2&gt;&#10;&lt;p&gt;Mac の &lt;code&gt;open&lt;/code&gt; コマンド、便利ですね。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ open &lt;span class="s2"&gt;&amp;#34;ファイルやURL&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;というコマンドを実行すれば、テキストファイルであれば簡易なエディタが、URL であれば Chrome ブラウザが起動します。&lt;/p&gt;&#10;&lt;p&gt;ここで起動する Chrome ブラウザですが、すでに起動している Chrome ブラウザのウィンドウが存在していた場合、ページは新しい &lt;strong&gt;タブ&lt;/strong&gt; として表示されます。&lt;/p&gt;&#10;&lt;p&gt;しかし、タブではなく &lt;strong&gt;ウィンドウ&lt;/strong&gt; として起動したい場合にはどうしたら良いでしょうか？&lt;/p&gt;&#10;&lt;h2 id="検証環境"&gt;検証環境&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ uname -moi&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;x86_64 MacBookPro16,1 Darwin&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ &lt;span class="s2"&gt;&amp;#34;/Applications/Google Chrome.app/Contents/MacOS/Google Chrome&amp;#34;&lt;/span&gt; --version&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Google Chrome 92.0.4515.159&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="open-url-で起動するアプリケーションの実態"&gt;&lt;code&gt;open &amp;quot;URL&amp;quot;&lt;/code&gt; で起動するアプリケーションの実態&lt;/h2&gt;&#10;&lt;p&gt;例えば &lt;code&gt;open &amp;quot;https://google.jp&amp;quot;&lt;/code&gt; コマンドが実行されたときに起動する Chrome ブラウザアプリケーションの実態はどこにあるでしょうか？&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Mac 環境に限って言えばこれは &lt;code&gt;&amp;quot;/Applications/Google Chrome.app/Contents/MacOS/Google Chrome&amp;quot;&lt;/code&gt; というアプリケーションになります。&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;ですので、以下のコマンドを実行しても同じ結果となります。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ &lt;span class="s2"&gt;&amp;#34;/Applications/Google Chrome.app/Contents/MacOS/Google Chrome&amp;#34;&lt;/span&gt; https://google.jp&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="chrome-アプリケーション起動時の新規ウィンドウ起動オプション"&gt;Chrome アプリケーション起動時の新規ウィンドウ起動オプション&lt;/h2&gt;&#10;&lt;p&gt;Chorme アプリケーション起動の際に &lt;code&gt;--new-window&lt;/code&gt; オプションを指定し、新規ウィンドウの起動を強制することができます。&lt;/p&gt;</description></item><item><title>Google Search ConsoleのAMP解析結果が根こそぎ無効となっていたため対処しました</title><link>https://genzouw.com/entry/2021/02/15/102933/2232/</link><pubDate>Mon, 15 Feb 2021 10:29:33 +0900</pubDate><guid>https://genzouw.com/entry/2021/02/15/102933/2232/</guid><description>&lt;h2 id="はじめに"&gt;はじめに&lt;/h2&gt;&#10;&lt;p&gt;ブログのアクセス数がついに &lt;strong&gt;月間30,000万PV&lt;/strong&gt; となりました！&lt;/p&gt;&#10;&lt;p&gt;10年以上続けていたブログです。&#10;全くアクセス数伸びませんでしたが、ここ数年で急にアクセス数が増えました。&#10;ITエンジニアの需要が増えたことが関係しているのかな？&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;さて、昨日久しぶりに &lt;strong&gt;Google Search Console&lt;/strong&gt; を覗いたところ、AMPページについてエラーが発声していました。&lt;/p&gt;&#10;&lt;p&gt;今日はどのような問題が発生していたのかと、対処法を取り上げたいと思います。&lt;/p&gt;&#10;&lt;h2 id="wordpress環境バージョンテーマ"&gt;WordPress環境（バージョン、テーマ）&lt;/h2&gt;&#10;&lt;p&gt;WordPress &lt;strong&gt;5.6.1&lt;/strong&gt; (Luxeritas Child Theme テーマ)&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="https://docs.google.com/uc?id=1sMAraSZCynSQBl37KQEWk3vaaGqfjtzl" alt=""&gt;&lt;/p&gt;&#10;&lt;h2 id="google-search-console-のampページクローリングでエラーが発生していた"&gt;&amp;ldquo;Google Search Console&amp;rdquo; のAMPページクローリングでエラーが発生していた&lt;/h2&gt;&#10;&lt;p&gt;冒頭でも触れましたが、久しぶりに &lt;strong&gt;Google Search Console&lt;/strong&gt; を覗いてみました。&lt;/p&gt;&#10;&lt;p&gt;左メニューからいくつかの内容を流し見していたところ、 &lt;strong&gt;「AMP」&lt;/strong&gt; ページを開いてびっくり。&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="https://docs.google.com/uc?id=1U13G0-svPLUMb3GJqC2oB4Km96Ug2NxP" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;「せっかくAMP対応していたページが根こそぎエラーになっている！」&lt;/strong&gt;&lt;/p&gt;&#10;&lt;h2 id="なぜampページのクローリングでエラーが発生していたのか"&gt;なぜAMPページのクローリングでエラーが発生していたのか？&lt;/h2&gt;&#10;&lt;p&gt;エラーとなっているページを1つ選んで詳細を確認してみました。&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="https://docs.google.com/uc?id=1ceQAdOXpNZaYyiqpjPwIH31oTvu1NXk3" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;&lt;amp-img&gt;&lt;/strong&gt; タグ内に、 &lt;code&gt;loading=&amp;quot;lazy&amp;quot;&lt;/code&gt; というHTML属性が設定されていることが原因でした。&lt;/p&gt;&#10;&lt;p&gt;ただ、僕はこのような設定を行った記憶がありません。&lt;/p&gt;&#10;&lt;h2 id="wordpress55から導入された画像の遅延ローディング機能が原因"&gt;WordPress5.5から導入された「画像の遅延ローディング機能」が原因&lt;/h2&gt;&#10;&lt;p&gt;Web上で調べてみると、 &lt;strong&gt;Wordpress5.5&lt;/strong&gt; から &lt;strong&gt;「画像の遅延ローディング機能」&lt;/strong&gt; が導入されたようです。&lt;/p&gt;&#10;&lt;p&gt;デフォルトの動作として、エントリの中に埋め込まれている画像には &lt;code&gt;loading=&amp;quot;lazy&amp;quot;&lt;/code&gt; が自動的に設定されるようです。&lt;/p&gt;&#10;&lt;h2 id="対処法1--wp-includesfunctionsphp-に遅延ローディングの無効ロジックを追記"&gt;対処法1 ： &lt;code&gt;wp-includes/functions.php&lt;/code&gt; に「遅延ローディング」の無効ロジックを追記&lt;/h2&gt;&#10;&lt;p&gt;「遅延ローディング」を無効化するためには以下のようにWordPressのコードを書き換えます。&lt;/p&gt;&#10;&lt;p&gt;&lt;del&gt;（注意：次にアップグレードした際に、また変更内容が消えてしまう可能性はあるので、様子を見たいと思います。）&lt;/del&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;2021-02-25追記：やはりWordPressのアップグレードで変更内容が戻ってしまいました。後述する対処法2を参考ください。&lt;/strong&gt;&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;WordPressのソースコードを開きます。 ( &lt;code&gt;wp-includes/functions.php&lt;/code&gt; )&lt;/li&gt;&#10;&lt;li&gt;一番下に以下の1行を追記します。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;add_filter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;wp_lazy_loading_enabled&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;__return_false&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;実際に変更されたコードは以下のようになります。&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="https://docs.google.com/uc?id=1kl_jYkhQdXJFFytffPm59iqoPjpwRxCN" alt=""&gt;&lt;/p&gt;&#10;&lt;h2 id="対処法2--wp-contentthemes-ディレクトリ配下の-functionsphp-に遅延ローディングの無効ロジックを追記"&gt;対処法2 ： &lt;code&gt;wp-content/themes&lt;/code&gt; ディレクトリ配下の &lt;code&gt;functions.php&lt;/code&gt; に「遅延ローディング」の無効ロジックを追記&lt;/h2&gt;&#10;&lt;p&gt;WordPressのアップグレードを考慮するとこちらの方法が勧めです。&lt;/p&gt;</description></item><item><title>Chrome79以降からは、ステータスコード401を返すページにBasic認証を設定するとアクセスできなくなる</title><link>https://genzouw.com/entry/2020/01/09/120048/1857/</link><pubDate>Thu, 09 Jan 2020 12:00:48 +0900</pubDate><guid>https://genzouw.com/entry/2020/01/09/120048/1857/</guid><description>&lt;h2 id="はじめに"&gt;はじめに&lt;/h2&gt;&#10;&lt;p&gt;今までBasic認証をかけていて閲覧はできていたページが、Chrome79から急に閲覧できなくなるという問題が発生しました。&lt;/p&gt;&#10;&lt;p&gt;StackOverflowやTwitterなどを調べてみてもそのような問題で悩んでいる方はいません。&lt;/p&gt;&#10;&lt;p&gt;ちなみに対象のページはやや特殊で、Basic認証をかける以前から、サービスにログインせずにアクセスした場合は &lt;code&gt;ステータスコード = 401&lt;/code&gt; を返却しつつ、ページコンテンツを返却します。&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://www.chromium.org/"&gt;Chromium&lt;/a&gt; のソースコードを読んでみましたが、なかなかリーディングができず。（これは僕のスキルの問題です）&lt;/p&gt;&#10;&lt;p&gt;そこで実際に問題を再現させた後、「原因」の調査と「対策」を検討してみました。&lt;/p&gt;&#10;&lt;h2 id="検証環境"&gt;検証環境&lt;/h2&gt;&#10;&lt;h3 id="サーバサイド"&gt;サーバサイド&lt;/h3&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;span class="lnt"&gt;6&#10;&lt;/span&gt;&lt;span class="lnt"&gt;7&#10;&lt;/span&gt;&lt;span class="lnt"&gt;8&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ apachectl -v&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Server version: Apache/2.4.38 &lt;span class="o"&gt;(&lt;/span&gt;Debian&lt;span class="o"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Server built: 2019-08-18T13:34:20&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ php -v&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;PHP 7.2.23 &lt;span class="o"&gt;(&lt;/span&gt;cli&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;built: Oct &lt;span class="m"&gt;5&lt;/span&gt; &lt;span class="m"&gt;2019&lt;/span&gt; 00:23:19&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt; NTS &lt;span class="o"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Copyright &lt;span class="o"&gt;(&lt;/span&gt;c&lt;span class="o"&gt;)&lt;/span&gt; 1997-2018 The PHP Group&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Zend Engine v3.2.0, Copyright &lt;span class="o"&gt;(&lt;/span&gt;c&lt;span class="o"&gt;)&lt;/span&gt; 1998-2018 Zend Technologies&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="クライアントサイド"&gt;クライアントサイド&lt;/h2&gt;&#10;&lt;h3 id="プラットフォーム"&gt;プラットフォーム&lt;/h3&gt;&#10;&lt;p&gt;PC&lt;/p&gt;&#10;&lt;h3 id="ブラウザ"&gt;ブラウザ&lt;/h3&gt;&#10;&lt;p&gt;2020-01-08現在、確認した環境は以下の２つです。 &lt;code&gt;version 81&lt;/code&gt; は &lt;strong&gt;Chrome Canary&lt;/strong&gt; を利用しました。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;code&gt;Version 79.0.3945.88 (Official Build) (64-bit)&lt;/code&gt; ( &lt;strong&gt;Chrome&lt;/strong&gt; )&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;Version 81.0.4020.0 (Official Build) canary (64-bit)&lt;/code&gt; ( &lt;strong&gt;Chrome Canary&lt;/strong&gt; )&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;*&lt;em&gt;※いずれの環境でも問題が発生することを確認済みです。&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Auth0（クラウド統合認証プラットフォーム）について調査</title><link>https://genzouw.com/entry/2019/07/09/234703/1668/</link><pubDate>Tue, 09 Jul 2019 23:47:03 +0900</pubDate><guid>https://genzouw.com/entry/2019/07/09/234703/1668/</guid><description>&lt;h2 id="はじめに"&gt;はじめに&lt;/h2&gt;&#10;&lt;p&gt;「AWS Cognito」、「Firebase」と調査をしていたが、かゆいところに手がとどかない感じだったがようやく至れり尽くせりのサービスを発見。&#10;（とはいえ、価格帯を考慮に入れた場合は「Firebase」が良さそう。「AWS Cognito」はUIがわかりにくいわ、ドキュメントはわかりにくいわでイマイチな印象。）&lt;/p&gt;&#10;&lt;h2 id="auth0-クラウド統合認証プラットフォーム-とは"&gt;Auth0 (クラウド統合認証プラットフォーム) とは&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;以下のような形態のアプリケーションに対して、認証・認可のサービスをクラウドで提供している&#10;&lt;ul&gt;&#10;&lt;li&gt;Webアプリ&lt;/li&gt;&#10;&lt;li&gt;モバイル&lt;/li&gt;&#10;&lt;li&gt;API&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;いわゆるIDaaS (Identity as a Service)ベンダー&lt;/li&gt;&#10;&lt;li&gt;ユーザー認証/認可/セキュリティを用意に実現することが可能&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="auth0が提供するログインページの種類"&gt;Auth0が提供するログインページの種類&lt;/h2&gt;&#10;&lt;p&gt;大きく2つの形態が選択できる&lt;/p&gt;&#10;&lt;h3 id="classicログインページ"&gt;Classicログインページ&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&amp;ldquo;Lock.js&amp;rdquo; と呼ばれる JavaScriptライブラリベースのログインページ&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;自分のサービス提供ドメイン&lt;/strong&gt; 内からログインページを提供&lt;/li&gt;&#10;&lt;li&gt;以下の方法で利用可能&#10;&lt;ul&gt;&#10;&lt;li&gt;Githubからダウンロード&lt;/li&gt;&#10;&lt;li&gt;NPMやYARNでインストール&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="newログインページ"&gt;Newログインページ&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;JavaScriptを使用してはいない&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Auth0の管理ドメイン&lt;/strong&gt; 内からログインページを提供&#10;&lt;ul&gt;&#10;&lt;li&gt;ただし、手を加えれば &lt;strong&gt;自分のサービス提供ドメイン&lt;/strong&gt; 内から提供するようにカスタマイズすることは可能&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;HTMLで提供されており、軽量で速い&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="ログインページのカスタマイズについて"&gt;ログインページのカスタマイズについて&lt;/h2&gt;&#10;&lt;h3 id="軽微なログインページのカスタマイズ"&gt;軽微なログインページのカスタマイズ&lt;/h3&gt;&#10;&lt;p&gt;簡単なデザイン変更はダッシュボードページから即座に可能。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;ログ&lt;/li&gt;&#10;&lt;li&gt;文字色&lt;/li&gt;&#10;&lt;li&gt;背景色&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;img src="https://docs.google.com/uc?id=1cE9-1tmc5fK2632khzPjFUr29NkaQ3Iw" alt=""&gt;&lt;/p&gt;&#10;&lt;h3 id="大幅なログインページのカスタマイズ"&gt;大幅なログインページのカスタマイズ&lt;/h3&gt;&#10;&lt;p&gt;デフォルトで提供されているログインページのHTMLを直接書き換えることも可能&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;一応重要度を理解して触ってもらうためか、「トグルボタン」をスイッチさせないとHTML編集ができないUIとなっている&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;img src="https://docs.google.com/uc?id=17chTZg1AO0S7MvAklZn2LkCq6w1--neW" alt=""&gt;&lt;/p&gt;&#10;&lt;h3 id="ログインページの表示言語のカスタマイズ"&gt;ログインページの表示言語のカスタマイズ&lt;/h3&gt;&#10;&lt;p&gt;&lt;strong&gt;Newログインページ&lt;/strong&gt; に関しては、適切な言語設定表示に切替可能。&#10;切替可能な言語の一覧は、こちらのページで公開されている。 ( &lt;a href="https://auth0.com/docs/universal-login/i18n"&gt;https://auth0.com/docs/universal-login/i18n&lt;/a&gt; )&lt;/p&gt;&#10;&lt;p&gt;ログインページの言語切替の仕組みは以下のルールに基づいて行われる。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;「設定ページ」からサポートする言語設定を複数選択可能。&#10;&lt;ul&gt;&#10;&lt;li&gt;複数選択したサポート言語のうち、いずれか1つがデフォルトサポート言語となる&lt;/li&gt;&#10;&lt;li&gt;デフォルトでは英語のみサポートする設定となっている&lt;/li&gt;&#10;&lt;li&gt;「日本語」だけを提供したい場合は「日本語」のみをサポートする言語として選択すればよい&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;ブラウザがアクセスしてきた際に上記のサポート言語のいずれかから適切な言語を選択する。&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;ログインページURLへのリダイレクト時に付与された &lt;code&gt;ui_locales&lt;/code&gt; クエリ文字列を条件に検索。（ &lt;strong&gt;ex&lt;/strong&gt; : &lt;code&gt;ui_locales=ja&lt;/code&gt;）&lt;/li&gt;&#10;&lt;li&gt;ブラウザが送信する &lt;code&gt;Accept-Language&lt;/code&gt; リクエストヘッダ情報を条件に検索。&lt;/li&gt;&#10;&lt;li&gt;上記いずれを使ってもサポート言語が見つからない場合はデフォルトサポート言語を利用。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h2 id="認証フロー既存のレガシーwebアプリケーションが認証状態に至るまでの流れ"&gt;認証フロー（既存のレガシーWebアプリケーションが認証状態に至るまでの流れ）&lt;/h2&gt;&#10;&lt;p&gt;&lt;img src="https://docs.google.com/uc?id=1nwOIN1HmjKGpPf4ylZNcknxGevlQmjCd" alt=""&gt;&lt;/p&gt;</description></item><item><title>Let's Encrypt でワイルドカード証明書を発行してすべてのサブドメインにhttpsを適用</title><link>https://genzouw.com/entry/2019/04/06/165110/1315/</link><pubDate>Sat, 06 Apr 2019 16:51:10 +0900</pubDate><guid>https://genzouw.com/entry/2019/04/06/165110/1315/</guid><description>&lt;h2 id="はじめに"&gt;はじめに&lt;/h2&gt;&#10;&lt;p&gt;僕のブログやその他検証プログラムを配置しているラボページなどはいずれも「Let&amp;rsquo;s Encrypt」を使ってSSLを実現しています。&lt;/p&gt;&#10;&lt;p&gt;「Let&amp;rsquo;s Encrypt」のワイルドカード証明書の更新を行っていて、再度新たに設定し直したのですがやり方を忘れないように「ポストイット」にして貼り付けておきます。&lt;/p&gt;&#10;&lt;h2 id="検証環境"&gt;検証環境&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ uname -moi&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;x86_64 x86_64 GNU/Linux&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ apachectl -v&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Server version: Apache/2.4.6 &lt;span class="o"&gt;(&lt;/span&gt;CentOS&lt;span class="o"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="事前作業"&gt;事前作業&lt;/h2&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&lt;strong&gt;ドメイン&lt;/strong&gt; が必須なので、事前に取得しておきましょう。&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;※今回のブログ用に &lt;code&gt;spinosaurus.work&lt;/code&gt; というドメインを取得し手順を整理しました。&lt;/strong&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;DNSレコードとして、ワイルドカードのAレコードを作成しておくとこのあとの確認がしやすいです。&#10;&lt;ul&gt;&#10;&lt;li&gt;例えば &lt;code&gt;*.spinosaurus.work&lt;/code&gt; のようなレコード&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h2 id="作業手順"&gt;作業手順&lt;/h2&gt;&#10;&lt;p&gt;「Let&amp;rsquo;s Encryt」用のワイルドカード証明書を作成し、認証局・Webサーバに設定するために &lt;a href="https://certbot.eff.org/"&gt;Certbot&lt;/a&gt; というツールを利用します。&lt;/p&gt;&#10;&lt;p&gt;インストールしたあとは &lt;a href="https://certbot.eff.org/"&gt;Certbot&lt;/a&gt; を使えばあっという間にSSLによる通信ができ当たります。&lt;/p&gt;&#10;&lt;h3 id="certbotのインストール"&gt;「Certbot」のインストール&lt;/h3&gt;&#10;&lt;p&gt;&lt;code&gt;yum&lt;/code&gt; でインストールができるのですが、最新バージョンでない場合に正常に動作しないことがあってハマりした。&#10;はまらないように最新バージョンを使うことをおすすめします。&#10;( &lt;code&gt;yum&lt;/code&gt; でインストールしたものでも問題が起きないときのほうが多いのですが、ときどきできなかったりするので。。。)&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 2&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 3&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 4&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 5&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 6&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 7&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 8&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 9&#10;&lt;/span&gt;&lt;span class="lnt"&gt;10&#10;&lt;/span&gt;&lt;span class="lnt"&gt;11&#10;&lt;/span&gt;&lt;span class="lnt"&gt;12&#10;&lt;/span&gt;&lt;span class="lnt"&gt;13&#10;&lt;/span&gt;&lt;span class="lnt"&gt;14&#10;&lt;/span&gt;&lt;span class="lnt"&gt;15&#10;&lt;/span&gt;&lt;span class="lnt"&gt;16&#10;&lt;/span&gt;&lt;span class="lnt"&gt;17&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# まずはルートになります&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ sudo -i&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 古いものがあると正常に動作しない場合があるため、念の為削除コマンドを実行&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ yum remove -y certbot python2-certbot-apache&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 以下のディレクトリに&amp;#34;Certbot&amp;#34;を配置しておきます&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ &lt;span class="nb"&gt;cd&lt;/span&gt; /usr/local/src&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ git clone https://github.com/certbot/certbot.git&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 多くの場合は &amp;#34;/usr/local/bin&amp;#34; にパスが通っているので、シンボリックリンクを作成&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ ln -s /usr/local/src/certbot/certbot-auto /usr/local/bin&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# バージョンを確認&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ /usr/local/bin/certbot-auto --version&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;certbot 0.33.1&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;正しくインストールされました。&lt;/p&gt;</description></item></channel></rss>