Tutorial simplificado para geração de certificados SSL para localhost manualmente.
- How to create an HTTPS certificate for localhost domains
- Convert a CERT/PEM certificate to a PFX certificate
md -p "${XDG_DATA_HOME}/.aspnet/https"
cd "${XDG_DATA_HOME}/.aspnet/https"
Isso vai gerar os arquivos: RootCA.pem
, RootCA.key
& RootCA.crt
openssl req -x509 -nodes -new -sha256 -days 1024 -newkey rsa:2048 -keyout RootCA.key -out RootCA.pem -subj "/C=US/CN=Example-Root-CA"
openssl x509 -outform pem -in RootCA.pem -out RootCA.crt
Esse arquivo irá conter todos os domínios hospedados localmente para desenvolvimento.
md domains.ext
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = localhost
DNS.2 = fake1.local
DNS.3 = fake2.local
Isso vai gerar os arquivos: localhost.key
, localhost.csr
& localhost.crt
openssl req -new -nodes -newkey rsa:2048 -keyout localhost.key -out localhost.csr -subj "/C=US/ST=YourState/L=YourCity/O=Example-Certificates/CN=localhost.local"
openssl x509 -req -sha256 -days 1024 -in localhost.csr -CA RootCA.pem -CAkey RootCA.key -CAcreateserial -extfile domains.ext -out localhost.crt
Isso irá converter os arquivos localhost.crt
& localhost.key
para o formato localhost.pfx
openssl pkcs12 -in localhost.crt -inkey localhost.key -export -out localhost.pfx
Obs.: O comando acima irá solicitar uma senha para o arquivo localhost.pfx
mas não é necessário informar uma senha.
Adicione as variáveis de ambiente para o ASP.NET Core no arquivo .zshenv
se estiver usando o Zsh.
ou adicione as variáveis de ambiente no arquivo .bashrc
se estiver usando o Bash.
export ASPNETCORE_Kestrel__Certificates__Default__Password="" # No password
export ASPNETCORE_Kestrel__Certificates__Default__Path="${XDG_DATA_HOME}/.aspnet/https/localhost.pfx"
Será necessário reiniar o sistema para que o certificado da autoridade de certificação seja confiável.
sudo trust anchor RootCA.crt
Obs.: O comando acima é para sistemas baseados em arch, para outros sistemas operacionais consulte a documentação.
archlinux btw
Se você não sabe fazer isso a essa altura, você está no sistema operacional errado.
dotnet run
Você também pode deixar explícito que deseja rodar a aplicação em HTTPS.
dotnet run -lp https
O parâmetro -lp
é um atalho para --launch-profile
. O valor https
é o nome do perfil de lançamento que foi configurado no arquivo Properties/launchSettings.json
.