LoginSignup
1
1

More than 3 years have passed since last update.

ASP.NET CoreをUbuntu18.04 LTSで動かしてみたよ~

Posted at

はじめに

Microsoftが最近オープンソースに力を入れている。
元々VisualStudioが好きな僕が「そうだ!ASP.NET Coreを使ってみよう」と奮い立ってみた。
※いつもはJavascriptとPerl使いです。Tengラブ。

.NET Core SDKインストール

インストール参考

インストール手順

$ wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb
$ sudo dpkg -i packages-microsoft-prod.deb
$ sudo add-apt-repository universe
$ sudo apt install apt-transport-https
$ sudo apt update

ASP.NET Coreサンプルを用意

VisualStudio2019を起動し、ASP.NET Coreのサンプルプロジェクトを作成して、ビルド。
Debug配下またはRelease配下のファイル達をUbuntuに転送。

$ sudo mkdir /var/webapp/
$ sudo mv /home/hoge/asp_net_app /var/webapp/

実行してみる

$ dotnet /var/webapp/asp_net_app/hoge.dll

Unable to start Kestrel.
System.InvalidOperationException: Unable to configure HTTPS endpoint. No server certificate was specified, and the default developer certificate could not be found.

エラー。。
調べてみるとhttps接続でなければならないらしく、オレオレ証明書を作って入れる。

オレオレ証明書の作成

参考 - ASP.NET CoreでHTTPSエラーが発生する現象の対処方法
https://www.aruse.net/entry/2018/10/05/204120

$ openssl genrsa 2024 > server.key

証明書署名要求(CSR / Certificate Signing Request)を作成します。

$ openssl req -new -key server.key > server.csr

Country Name (2 letter code) []:
State or Province Name (full name) []:
Locality Name (eg, city) []:
Organization Name (eg, company) []:
Organizational Unit Name (eg, section) []:
Common Name (eg, fully qualified host name) []:localhost
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: password

サーバー証明書を作成します。

ここでは有効期限を10年(3650日)としています。

$ openssl x509 -req -days 3650 -signkey server.key < server.csr > server.crt

サーバー証明書を crt 形式(と秘密鍵)から pfx 形式に変換します。パスワードは"password"と設定しています。

$ openssl pkcs12 -export -out server.pfx -inkey server.key -in server.crt
Enter Export Password:
Verifying - Enter Export Password:

そして、ASP.NET MVC プロジェクトの Program.cs を以下のように修正します。

//追加
using System.Net;

//(中略)

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseKestrel(options =>
            {
                options.Listen(IPAddress.Loopback, 5000);
                options.Listen(IPAddress.Loopback, 5001, listenOptions =>
                {
                    listenOptions.UseHttps("server.pfx","password");
                });
            })  
            .UseStartup<Startup>();
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1