2020年06月24日 - Hiroyuki Sato    

GitLabのユーザー名・グループ名を決める際の注意点

GitLabのユーザー名やグループ名に「.(ドット)」が含まれていると、GitLab Pages を使用した際に SSL サーバー証明書のエラーが発生してしまいます。

GitLabのユーザー名やグループ名には「半角英数」と「-(ハイフン)」と「_(アンダースコア)」と「.(ドット)」が使用可能です。 しかし、ユーザー名やグループ名に「.(ドット)」を使用すると、あとになってから後悔することになるかもしれません。

動作確認バージョン

以下のバージョンで動作確認をしました。バージョンによっては、動作や表示に違いが発生する場合があるのでご注意ください。

  • GitLab Enterprise Edition 13.1.0-pre 22c70dcc01f

結論

はじめに結論から言うと、ユーザー名やグループ名に「.(ドット)」が含まれていると、GitLab Pages を使用した際に SSL サーバー証明書のエラーが発生するためです。

GitLab Pages とは?

GitLab Pages は GitLab で簡単に静的なウェブサイトを公開できる機能です。 この記事では GitLab Pages についての詳しい説明はしませんが、 公式ドキュメントが充実しているので、詳しく知りたい方はそちらを参照してください。

問題を説明するには、はじめに GitLab.com の GitLab Pages で公開するウェブサイトの URL のルールについて説明する必要があります。 ウェブサイトの URL のルールは次のようになっています。

GitLab Pages のタイプ GitLab に作成したプロジェクトの名前 ウェブサイトの URL
ユーザーページ {ユーザー名}.gitlab.io http(s)://{ユーザー名}.gitlab.io
グループページ {グループ名}.gitlab.io http(s)://{グループ名}.gitlab.io
ユーザー配下のプロジェクトページ {プロジェクト名} http(s)://{ユーザー名}.gitlab.io/{プロジェクト名}
グループ配下のプロジェクトページ {プロジェクト名} http(s)://{グループ名}.gitlab.io/{プロジェクト名}

GitLab.com の GitLab Pages で公開するウェブサイトの URL

ユーザー名やグループ名に「.(ドット)」が含まれる場合の問題

例えば、ユーザー名が taro.yamada のユーザーが GitLab Pages でユーザーページを公開すると、 ウェブサイトの URL は http(s)://taro.yamada.gitlab.io となります。

一方、GitLab.com の GitLab Pages では、Common Name が *.gitlab.io のワイルドカード SSL サーバー証明書が使用されています。 これは taro.yamada.gitlab.io というドメインでは無効な SSL サーバー証明書になります。

注: taro.yamada.gitlab.io で有効な Common Name は taro.yamada.gitlab.io*.yamada.gitlab.io のどちらかになります。

そのため、https://taro.yamada.gitlab.io にアクセスすると、次のようにブラウザで無効な SSL サーバー証明書の警告が表示されてしまいます。

not secure warning 無効な SSL サーバー証明書の警告

最後に

GitLab のユーザー名やグループ名は、GitLabに作成したプロジェクトの URL としても使用されています。 そのため、変更することによる影響が大きく、あとから変更することには大きな苦痛がともないます。

当面は GitLap Pages を使用する予定がない場合であっても、ユーザー名やグループ名には「.(ドット)」を使用しないことをおすすめします。

注: ユーザー名やグループ名を変更すると、変更前の URL は変更後の URL にリダイレクトされます。 しかし、変更前のユーザー名やグループ名で新しいユーザーやグループが作成されるとリダイレクトは無効になります。

カバーイメージの提供: Nick Fewings - Unsplash

Gitlab x icon svg