Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Apply suggestions from code review
Co-authored-by: Samruddhi Khandale <samruddhikhandale@github.com>
  • Loading branch information
sliekens and samruddhikhandale authored Jun 19, 2024
commit 52e2aa4c35f31bcc850db0296c1f8a66d83421b2
14 changes: 7 additions & 7 deletions src/dotnet/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,11 @@ See [history](history) for information on the contents of each version and [here

Alternatively, you can use the contents of [.devcontainer](.devcontainer) to fully customize your container's contents or to build it for a container host architecture not supported by the image.

### Enabling HTTPS in ASP.NET Core
### Enabling HTTPS in ASP.NET Core by creating a dev certificate

You can use `dotnet dev-certs https` inside the Dev Container to create a development HTTPS certificate for ASP.NET Core. However, each time the container is recreated, the development certificate will be lost. To make the development certificate survive container rebuilds, you can use a named volume.
You can use `dotnet dev-certs https` inside the dev container to create a development HTTPS certificate for ASP.NET Core. However, each time the container is recreated, the development certificate will be lost. To make the development certificate survive container rebuilds, you can use a named volume.

For example, in `devcontainer.json`, add a named volume for the `x509stores` directory inside the `vscode` user's home folder. Also add a lifecycle script, which adds the development certificate to the Dev Container's trust store.
For example, in `devcontainer.json`, add a named volume for the `x509stores` directory inside the `vscode` user's home folder. Also add a lifecycle script, which adds the development certificate to the dev container's trust store.

``` json
"mounts": [
Expand Down Expand Up @@ -72,7 +72,7 @@ sudo -E dotnet dev-certs https --export-path /usr/local/share/ca-certificates/ht
sudo update-ca-certificates
```

You should see the following output when the Dev Container is created:
You should see the following output when the dev container is created:

``` text
Running the onCreateCommand from devcontainer.json...
Expand All @@ -85,11 +85,11 @@ Running hooks in /etc/ca-certificates/update.d...
done.
```

Now this certificate will survive container rebuilds. The certificate will also be trusted by code running inside the container like `System.Net.HttpClient`, or tools like wget and curl. If needed, you can use Docker Desktop to export the development certificate to a local directory, in case you need to add it to any other trust stores.
Now this certificate will survive container rebuilds. The certificate will also be trusted by code running inside the container like `System.Net.HttpClient`, or tools like `wget` and `curl`. If needed, you can use Docker Desktop to export the development certificate to a local directory, in case you need to add it to any other trust stores.

#### Alternate solution
### Enabling HTTPS in ASP.NET using your own dev certificate

You can mount an exported copy of your local dev certificate. This solution is only suitable for private projects, as the password will become part of your `devcontainer.json`. Do not apply this solution to team projects or open source projects.
You can mount an exported copy of your local dev certificate for enhanced convenience. This solution is ideal for private projects, but please note that the password will be included in your `devcontainer.json`. Avoid using this method for team projects or open source projects to maintain security best practices.

1. Export the local certificate using the following command:

Expand Down