暗号化しよう に遭遇したときにSSL証明書を調べ始め、gitlabでそれを使用したいと考えましたが、Raspberry Pi 2で実行されており、現在完全に実行されているため(私は何も台無しにしたくない)、彼はSSL証明書を正しく暗号化することができますか? PS:私のインストールはオムニバスです
インフラストラクチャのセットアップに応じて2つの方法があります(Raspi、ビッグクラウドサーバー、またはその中間)。
externally access Serverがある場合(GitlabホストはLet's Encryptの自動検証メカニズムに必要なLet's Encryptサーバーから呼び出すことができることを意味しますgitlab.yoursite.com
および対応するDNS解決済みサーバー/ホストなどの特定のドメインを「所有」していること必要な唯一のもの(Gitlabバージョン10.7以降)はsをGitlab URL構成の/etc/gitlab/gitlab.rb
のhttpに追加するには(as- marcolz 既に述べた):
external_url 'https://gitlab.yoursite.com'
https://docs.gitlab.com/omnibus/settings/ssl.html#let-39-s-encrypt-integration のドキュメントから:
Omnibus-gitlabは、Let's Encryptから証明書を自動的に取得して更新できます。
GitlabホストがLet's Encryptサーバーから外部からアクセスできない場合、プロセス全体がはるかに困難になります。その後、Gitlab Omnibusが自動的に面倒な作業を行うニースの自動方法を終了します。Let's Encrypt証明書を今すぐ自分で取得する必要があります!外部からアクセス可能なサーバーを使用せずにLet's Encrypt証明書を取得する方法がいくつかあります。
私が選択し、推奨するのは、代替のLet's Encryptクライアント dehydrated を dns-Lexicon と一緒に使用して、証明書の取得プロセスを完全に自動化することです。 dns-challenge
を暗号化しましょう。これは2016年に導入されました。これが唯一の方法で、外部からアクセス可能なサーバーを必要としません-ここでも、gitlab.yoursite.com
[〜#〜] and [〜#〜]のような特定のドメインを「所有」する必要があります。DNSプロバイダーへのAPIアクセスが必要です。ドメインをホストします(ここでは その場合にサポートされるDNSプロバイダーのリスト )。
プロセス全体が非常に複雑なので、完全に理解できる Ansible playbook prepare-gitlab.yml を作成しました。Omnibusを使用したGitlabインストールのすべてのステップが処理されます(完全なGitHubソース https://github.com/jonashackt/gitlab-ci-stack )から入手できます。
Let´s Encrypt証明書のみを作成する場合は、Ansibleを使用したくない場合でも obtain-letsencrypt-certs-dehydrated-Lexicon.yml をご覧ください。コンソール上のすべてのステップを手動で再現するか、ChefやSaltstackなどの別の自動化ツールを使用します(個人的にはお勧めできません)。別の方法は、Lexiconの連中からこの素晴らしいブログ投稿を見ることです。 https://blog.thesparktree.com/generated-intranet-and-private-network-ssl 、説明されている手順から私は基本的にプレイブックを開発しました。
どちらの方法を選択しても、手動で(または自動的に)フェッチされたLet's Encrypt証明書をコピーすることを忘れないでください
/srv/dehydrated/certs/{{ gitlab_domain }}/fullchain.pem
に
/etc/gitlab/ssl/{{ gitlab_domain }}.crt
そして
/srv/dehydrated/certs/{{ gitlab_domain }}/privkey.pem
に
/etc/gitlab/ssl/{{ gitlab_domain }}.key
私が今のところ見つけることができた圧倒的に最良の解決策は このブログ投稿 で説明されています。すべてを説明するわけではありませんが、重要な点は次のとおりです。
webroot
オーセンティケーターを使用します/var/www/letsencrypt
フォルダーを作成し、Let's Encryptのwebroot-path
としてこのディレクトリを使用します/etc/gitlab/gitlab.rb
の以下の構成値を変更し、その後gitlab-ctl reconfigure
を実行します。
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate']= "/etc/letsencrypt/live/gitlab.yourdomain.com/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/gitlab.yourdomain.com/privkey.pem"
nginx['custom_gitlab_server_config']="location ^~ /.well-known {\n alias /var/www/letsencrypt/.well-known;\n}\n"
Omnibusパッケージに同梱されているMattermostを使用している場合は、/etc/gitlab/gitlab.rb
でこれらのオプションを追加で設定できます。
mattermost_nginx['redirect_http_to_https'] = true
mattermost_nginx['ssl_certificate']= "/etc/letsencrypt/live/gitlab.yourdomain.com/fullchain.pem"
mattermost_nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/gitlab.yourdomain.com/privkey.pem"
mattermost_nginx['custom_gitlab_mattermost_server_config']="location ^~ /.well-known {\n alias /var/www/letsencrypt/.well-known;\n}\n"
最初の証明書を要求した後、external_url
をhttps://...
に変更し、gitlab-ctl reconfigure
を再度実行することを忘れないでください
この方法は、Let's Encrypt認証システムが使用するディレクトリ/var/www/letsencrypt/.well-known
をカスタムNginx構成を介してGitlab Webルートにマウントするだけで、Gitlabの実行中は常に認証が可能なため、非常にエレガントです。これは、Let's Encrypt証明書を自動的に更新できることを意味します。
Raspberry Piでインストールが異なるかどうかはわかりません。 Let's Encryptインストールプロセスは、私が何も知らない魔法を実行します。
grep 'external_url' /etc/gitlab/gitlab.rb
と入力して、Webサイト名を確認します。例としてhttps://gitlab.example.com:50000
外部URLがhttps
で始まっていない場合は、https
で始まるように変更します
太字の部分は<your domain name>
になります
このリンクのLet's Encryptインストール手順に従ってください: https://letsencrypt.org/howitworks/
指示は変更される可能性があるため、この手順はコピーしていません(プログラムは現在オープンベータ版であるため)。実行する必要があるものは、Let's Encrypt証明書を生成するApacheで実行されているWebサイトがあるかどうかによって異なります。
Let's Encrypt証明書を生成すると、/etc/letsencrypt/live/<your domain name>/
に配置されます
Gitlabは/etc/gitlab/ssl/
にある2つのファイルを期待しています
不明な点があります。次の場所で回答を使用して.pem証明書を変換する必要があります。 。pemを.crtおよび.keyに変換
証明書を/etc/letsencrypt/live/<your domain name>/cert.pem
から/etc/gitlab/ssl/<your domain name>.crt
にコピーします
秘密キーを/etc/letsencrypt/live/<your domain name>/privkey.pem
から/etc/gitlab/ssl/<your domain name>.key
にコピーします
gitlab-ctl reconfigure
を実行します
他の人に役立つ場合は、ここで使用したプロセスを書きました: http://kelan.io/2016/using-lets-encrypt-to-add-ssl-to-gitlab/
以前(ソースからのインストールを介して)GitLabをセットアップし、Let's Encryptを使用してSSLを追加しようとしていました。
キーポイントは次のとおりです。
standalone
のletsencrypt
モードを使用しますgitlab-Shell
で読み取り可能な証明書のコピーを作成します生成された証明書を/etc/gitlab/ssl
に手動でインストールし、外部URLを/etc/gitlab/gitlab.rb
のhttpsに設定する必要があります。説明は https://gitlab.com/gitlab-org/omnibus-gitlab /blob/master/doc/settings/nginx.md
生成された証明書を/ etc/gitlab/sslに手動でインストールし、 https:// gitlabの説明に従って/etc/gitlab/gitlab.rbで外部URLをhttpsに設定する必要があります。 com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/nginx.md
シンボリックリンクを使用したいので、証明書をコピーする必要はありません。 リンクの説明をここに入力してください