リポジトリの管理者アクセス許可を持つユーザーは、 GitHub Pages サイトに対して HTTPS を適用できます。
HTTPS について GitHub Pages
カスタム ドメインで正しく構成されているサイトを含むすべての GitHub Pages サイトでは、HTTPS と HTTPS の適用がサポートされます。 カスタム ドメインの詳細については、「カスタム ドメインと GitHub ページについて」と「カスタム ドメインと GitHub ページのトラブルシューティング」を参照してください。
GitHub Pages 2016 年 6 月 15 日以降に作成され、 github.io ドメインを使用するサイトは HTTPS 経由で自動的に提供されます。
GitHub Pages サイトは、パスワードやクレジットカード番号といった機密情報のやりとりに使うべきではありません。
警告
企業が Enterprise Managed Usersを使用しない限り、サイトのリポジトリがプライベートまたは内部の場合でも、 GitHub Pages サイトは既定でインターネット上で一般公開されます。 サイトのアクセス制御を管理することで、サイトをプライベートで公開できます。 それ以外の場合、サイトのリポジトリにセンシティブなデータがあるなら、公開前にそのデータを取り除くのが良いでしょう。 詳細については、「リポジトリについて」および「GitHub ページ サイトの表示設定を変更する」を参照してください。
メモ
RFC3280 では、共通名の長さは最大 64 文字とされています。 そのため、証明書を正常に作成するには、 GitHub Pages サイトのドメイン名全体が 64 文字未満である必要があります。
GitHub Pages サイトの HTTPS の適用
-
GitHub で、サイトのリポジトリにアクセスしてください。
-
リポジトリ名の下にある [Settings] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。
![タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。](/assets/cb-28260/images/help/repository/repo-actions-settings.png)
-
サイドバーの「コード、計画、自動化」セクションで、「ページ」をクリックします。
-
[GitHub Pages] で 、[ HTTPS の適用] を選択します。
証明書プロビジョニングのトラブルシューティング ("Certificate not yet created" (証明書がまだ作成されていません) エラー)
Pagesの設定でカスタムドメインを設定もしくは変更した場合、自動DNSチェックが開始されます。 このチェックでは、DNS 設定が が証明書を自動的に取得できるように構成されているかどうかを確認します。 チェックが成功した場合、 GitHub は Let's Encrypt に TLS 証明書を要求するジョブをキューに入れます。 有効な証明書を受信すると、 GitHub はページの TLS 終了を処理するサーバーに自動的にアップロードされます。 このプロセスが正常に終了すると、カスタムドメイン名の横にチェックマークが表示されます。
このプロセスには多少の時間がかかることがあります。 [保存] をクリックしてから数分経ってもプロセスが完了しない場合は、カスタム ドメイン名の横にある [削除] をクリックしてみてください。 ドメイン名を再入力し、 [保存] をもう一度クリックします。 これでプロビジョニングのプロセスがキャンセルされ、再起動されます。
混在したコンテンツの問題を解決する
GitHub Pages サイトに対して HTTPS を有効にしても、サイトの HTML が HTTP 経由で画像、CSS、または JavaScript を参照している場合、サイトは_混合コンテンツ_を提供しています。 混在したコンテンツを提供することで、サイトのセキュリティが下がり、アセットの読み込みに問題が生じる場合があります。
サイトでのコンテンツの混在を解消するには、サイトの HTML で http:// を https:// に変更して、すべてのアセットが HTTPS 経由で提供されるようにしてください。
アセットは通常、以下の場所にあります。
- サイトで Jekyll を使っている場合、HTML ファイルはおそらく
_layoutsフォルダーにあります。 - CSS は通常、HTML ファイルの
<head>セクションにあります。 - JavaScript は通常、
<head>セクションか、</body>を閉じるタグの直前にあります。 - 画像は通常、
<body>セクションにあります。
ヒント
サイトのソース ファイルにアセットが見つからない場合は、サイトのソース ファイルでテキスト エディターまたはGitHubでhttp://を検索してみてください。
HTML ファイルで参照されているアセットの例
| 資産の種類 | HTTP | HTTPS |
|---|---|---|
| CSS | <link rel="stylesheet" href="http:/ | <link rel="stylesheet" href="https:/ |
| JavaScript | <script type="text/ | <script type="text/ |
| Image | <a href="http:/ | <a href="https:/ |
DNS 構成を確認する
カスタム ドメインの DNS 構成により、HTTPS 証明書を生成できない場合があります。 これは、追加の DNS レコード、または GitHub Pagesの IP アドレスを指していないレコードが原因で発生する可能性があります。
HTTPS 証明書が正しく生成されるようにするには、次の構成をお勧めします。 ホストが ANAME の追加の @、A、AAAA、ALIAS レコード、または GitHub Pages で使用したいお客様の CNAME サブドメインやその他のカスタム サブドメインを指す www レコードがあると、HTTPS 証明書が生成されない可能性があります。
| シナリオ | DNS レコードの種類 | DNS レコード名 | DNS レコード値 |
|---|---|---|---|
| Apex ドメイン ( example.com) | A | @ | 185.199.108.153185.199.109.153185.199.110.153185.199.111.153 |
| Apex ドメイン ( example.com) | AAAA | @ | 2606:50c0:8000::1532606:50c0:8001::1532606:50c0:8002::1532606:50c0:8003::153 |
| Apex ドメイン ( example.com) | |||
ALIAS または ANAME | @ | ||
USERNAME.github.io またはORGANIZATION.github.io | |||
| サブドメイン ( www.example.com、 | |||
blog.example.com) | CNAME | SUBDOMAIN.example.com. | |
USERNAME.github.io またはORGANIZATION.github.io |