投稿

ラベル(Nginx)が付いた投稿を表示しています

LEGOとLet's Encryptで証明書を利用した手順のメモ

無料で提供されている認証局のLet's Encryptから、Webサーバ用のSSL証明書を取得・設定する。Let's EncryptにはCertbotという公式のクライアントがあるが、今回はOSSで公開されているLEGOを使ってみる。 OS:Ubuntu 20.04 Webサーバ:nginx 1.18.0 LEGO:4.5.3 ダウンロード github ( https://github.com/go-acme/lego )のReleasesからLEGOの実行ファイルをダウンロードする。 ダウンロードしたのはlinux_amd64。解凍して適当なパスに配置する(今回は /usr/local/bin/に配置)。 証明書の取得 コマンドラインでlegoを実行して証明書を取得する。この際ドメインの所有者確認が行われるが、これには二つの方法がありコマンドパラメータが異なる。 なお以降のサンプルではパラメータを下記にしているので、適時読み替えて欲しい。 ドメイン名:example.com 管理者アドレス:mail@example.com 出力パス:/opt/lego/ 方法1)DNSにtxtレコードを登録する場合 DNSにtxtレコードを設定して所有者確認を行う方法。Webサーバ自体を弄れない場合も可能だが、証明書の更新時にはまた別のtxtレコードを登録する必要がある。 sudo lego --dns manual --domains example.com --email mail@example.com --path /opt/lego/ run コマンドを実行するとtxtレコードのキーと値が表示される。コンソールはそのままにしてDNSサーバにtxtレコードを登録する。その後コマンドラインを続行するとLet's EncryptからDNSへレコードへ確認が行われる。 方法2)Webサイトにファイルを置く場合 Webサイトに置いたファイルで所有者確認を行う方法。既にWebサーバがhttpアクセスできる状態である必要がある。 sudo lego --accept-tos --domains example.com --email mail@example.com --path /opt/lego/ --http --http.webroot /op...

Ubuntu+ASP.NET CoreでWebサービス(3)/Nginxから転送

イメージ
前回 [バージョン情報] Ubuntu Server 18.04.1 LTS .NET Core 2.1 Nginx 1.14.0 Windows10(クライアント) Visual Studio 2017 Community(開発環境) みんな知ってるWebシステムの三層構造。前回はkestrelのホストしているURLに直接リクエストを投げたが、区分としてはASPはアプリケーションサーバだろう。なのでその前段階にWebサーバを構築する。 Webサーバには最近のスタンダードらしいNginxを使ってみる。MSの公式でもNginxを使用する方法が書いてある( リンク )ので、よくある構成かと思われる。 Nginxのインストール Ubuntuの公式リポジトリに含まれているので、apt installだけでダウンロードからインストールまでできてしまう。 $sudo apt install nginx インストールしたらnginxサービスを起動する。 $sudo systemctl start nginx コンソールには何も出てこないが、curlやブラウザでアクセスすると「Welcome to nginx!」のHTMLページが返ってくる。 補足:systemctl start nginx の代わりに service nginx start でも起動する。後者はサービスのみに対応したスクリプトコマンドで、実行結果は基本的に同じようだ。ただsystemctlの方が汎用的みたいなのでこちらに慣れておく。 リバースプロキシの設定 Nginxの既定のサイトの構成ファイル[/etc/nginx/sites-available/default]に転送設定を加える。 location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ =404; } location /api/ { proxy_pass http://localhost:5000; ...