リポジトリの管理者権限があるユーザは、GitHub Pages サイトに強制的に HTTPS を指定できます。
HTTPS と GitHub Pages について
カスタムドメインが正しく設定されたサイトを含めたすべての GitHub Pages サイトは、HTTPS や HTTPS 強制をサポートします。 カスタム ドメインについて詳しくは、「カスタムドメインとGitHub Pagesについて」と「カスタムドメインとGitHub Pages のトラブルシューティング」をご覧ください。
GitHub Pages サイトは、パスワードやクレジットカード番号といった機密情報のやりとりに使うべきではありません。
警告: エンタープライズが Enterprise Managed Users を使用しない限り、サイトのリポジトリがプライベートまたは内部であっても、GitHub Pages サイトは既定でインターネット上で一般公開されます。 サイトのアクセス制御を管理することで、サイトをプライベートで公開できます。 それ以外の場合、サイトのリポジトリにセンシティブなデータがあるなら、公開前にそのデータを取り除くのが良いでしょう。 詳細については、「リポジトリについて」および「GitHub Pages サイトの可視性を変更する」を参照してください。
注: RFC3280 では、共通名の長さは最大 64 文字とされています。 したがって、証明書が正常に作成されるようにするには、GitHub Pagesサイトのドメイン名全体の長さは64文字未満でなければなりません。
あなたの GitHub Pages サイトに HTTPS を強制する
- GitHub Enterprise Cloudで、サイトのリポジトリにアクセスしてください。
- リポジトリ名の下にある [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。
- サイド バーの [コードと自動化] セクションで、 [ ページ] をクリックします。
- 「GitHub Pages」で、 [HTTPS の適用] を選択します。
証明書プロビジョニングのトラブルシューティング ("Certificate not yet created" (証明書がまだ作成されていません) エラー)
Pagesの設定でカスタムドメインを設定もしくは変更した場合、自動DNSチェックが開始されます。 このチェックは、DNS設定がGitHubによる自動的な証明書の取得を許可するように設定されているかを判断します。 チェックが正常に終わったら、GitHub によって、[Let's Encrypt] から TLS 証明書をリクエストするジョブがキューイングされます。 有効な証明書を受信すると、GitHubは自動的にそれをPagesのTLSターミネーションを処理するサーバーにアップロードします。 このプロセスが正常に終了すると、カスタムドメイン名の横にチェックマークが表示されます。
Let's Encrypt の証明書を発行するには、GitHub Pages サイトを一般公開する必要があることに注意してください。 証明書が発行されたら、サイトを非公開に戻すことができます。
このプロセスには多少の時間がかかることがあります。 [保存] をクリックしてから数分経ってもプロセスが完了しない場合は、カスタム ドメイン名の横にある [削除] をクリックしてみてください。 ドメイン名を再入力し、 [保存] をもう一度クリックします。 これでプロビジョニングのプロセスがキャンセルされ、再起動されます。
混在したコンテンツの問題を解決する
GitHub Pages サイトで HTTPS を有効にしているのに、サイトの HTML が HTTP 経由で画像、CSS、または JavaScript を引き続き参照している場合、サイトは "混在したコンテンツ" を提供しています。 混在したコンテンツを提供することで、サイトのセキュリティが下がり、アセットの読み込みに問題が生じる場合があります。
サイトでのコンテンツの混在を解消するには、サイトの HTML で http://
を https://
に変更して、すべてのアセットが HTTPS 経由で提供されるようにしてください。
アセットは通常、以下の場所にあります。
- サイトで Jekyll を使っている場合、HTML ファイルはおそらく _layouts フォルダーにあります。
- CSS は通常、HTML ファイルの
<head>
セクションにあります。 - JavaScript は通常、
<head>
セクションか、</body>
を閉じるタグの直前にあります。 - 画像は通常、
<body>
セクションにあります。
ヒント: サイトのソース ファイルにアセットが見つからない場合は、テキスト エディターか GitHub Enterprise Cloud で、サイトのソース ファイルを http
で検索してください。
HTML ファイルで参照されているアセットの例
資産の種類 | HTTP | HTTPS |
---|---|---|
CSS | <link rel="stylesheet" href="http://example.com/css/main.css"> | <link rel="stylesheet" href="https://example.com/css/main.css"> |
JavaScript | <script type="text/javascript" src="http://example.com/js/main.js"></script> | <script type="text/javascript" src="https://example.com/js/main.js"></script> |
Image | <a href="http://www.somesite.com"><img src="http://www.example.com/logo.jpg" alt="Logo"></a> | <a href="https://www.somesite.com"><img src="https://www.example.com/logo.jpg" alt="Logo"></a> |