Soy nuevo en ASP.NET.
Ambiente:
Ubuntu 18.04
código de estudio visual
.NET SDK 2.2.105
Tengo problemas con algún comando ejecutándose.
Estaba leyendo el tutorial en
y ejecutó este comando:
dotnet dev-certs https --trust
Espero que se confíe en https://localhost . pero encontré el mensaje de error;
$ Specify --help for a list of available options and commands.
Parece que el comando "dotnet dev-certs https" no tiene opciones --trust. ¿Cómo resolver este problema?
Además de la respuesta de crisvdb, tengo varios datos para agregar y es la continuación del tutorial. No comento porque es bastante complejo comentar esto, pero antes de esta respuesta, primero mire la respuesta de crisvdb y luego regrese para continuar.
openssl verify -CAfile localhost.crt localhost.crt
como un paso no opcional, obligatorio. Ayudará./etc/ssl/certs
, así como en /usr/share/ca-certificates/
y, en algunos casos, en /usr/local/share/certificates
.sudo update-ca-certificates
appsettings.json
Interop+Crypto+OpenSslCryptographicException: error:2006D002:rutinas BIO:BIO_nuevo_archivo:lib del sistema
Tenga en cuenta que el error significa "acceso denegado". Puede ser porque no tienes permisos o relacionados.
7b) También podría ser que no se encuentre el archivo, uso la ruta completa en la configuración:
"Path": "/home/user/www/myfolder1/myapp/localhost.pfx",
Si obtiene el siguiente error en los registros de apache del sitio:
[ssl:error] [remoto ::1:supuerto] AH01961: Proxy SSL solicitado para susitio.com:443 pero no habilitado [Sugerencia: SSLProxyEngine] [proxy:error] AH00961: HTTPS: no se pudo habilitar la compatibilidad con SSL para [:: 1]:supuerto (localhost)
debe establecer en el VirtualHost la siguiente configuración después SSLEngine On
y antes de su ProxyPass
SSLProxyEngine on
Si obtiene el siguiente error en los registros de apache del sitio:
[proxy:error] [cliente xxxx:puerto] AH00898: Error durante SSL Handshake con servidor remoto devuelto por / [proxy_http:error] [cliente xxxx:puerto] AH01097: el cuerpo de la solicitud de paso falló en [::1]:puerto (localhost ) de xxxx()
debe establecer en VirtualHost la siguiente configuración después SSLProxyEngine on
y antes de su ProxyPass
SSLProxyVerify none SSLProxyCheckPeerCN off SSLProxyCheckPeerName off
ACTUALIZAR
Si está renovando esto y usa los mismos nombres, tenga en cuenta que debe eliminar su archivo pem
de etc/ssl/certs
Si bien la respuesta proporcionada por @chrsvdb es útil, no resuelve todos los problemas. Todavía tenía problemas con la comunicación de servicio a servicio (HttpClient - error de PartialChain) y también debe reconfigurar Kestrel para usar su propio certificado. Es posible crear un certificado autofirmado e importarlo al SDK de .NET. Todo lo que necesita es especificar la extensión 1.3.6.1.4.1.311.84.1.1
en el certificado.
Después de eso, el certificado se puede importar a .NET Core SDK y ser confiable. Confiar en Linux es un poco difícil ya que cada aplicación puede tener su propio almacén de certificados. Por ejemplo, Chromium y Edge usan nssdb, que se puede configurar con certutil
como lo describe John Duffy. Desafortunadamente, la ubicación de nssdb puede ser diferente cuando instala la aplicación como complemento. Entonces cada aplicación tiene su propia base de datos. Por ejemplo, para Chromium Snap, la ruta será $HOME/snap/chromium/current/.pki/nssdb
, para Postman Snap, será $HOME/snap/postman/current/.pki/nssdb, etc.
Por lo tanto, he creado un script que genera el certificado, confía en él para Postman Snap, Chmromium Snap, el usuario actual nssdb y en el nivel del sistema. También importa el script en el SDK de .NET para que ASP.NET Core lo use sin cambiar la configuración. Puede encontrar más información sobre el script en la publicación de mi blog https://blog.wille-zone.de/post/aspnetcore-devcert-for-ubuntu
Parece que este es un problema conocido con las herramientas globales de dotnet y ese comando específico solo está disponible para MacOS y Windows. Consulte este problema en github: Problema 6066 .
Parece que puede haber una solución para los usuarios de Linux basada en esta publicación SO: el servicio de aplicación ASP.Net Core solo escucha el puerto 5000 en Ubuntu .
Para cromo:
Ejecute: certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n {FILE_NAME} -i {FILE_NAME}
Reinicie Chrome.