public JsonWebTokenController(ILogger <JsonWebTokenController> logger, IJsonWebTokenTools jsonWebTokenTools, ICertificateTools certificateTools) { _logger = logger; _jsonWebTokenTools = jsonWebTokenTools; if (_fullCertificate == null) { _fullCertificate = certificateTools.CreateSignedPrivateCertificate("ten_year_certificate", "ten_year_certificate_password", DateTime.UtcNow.AddYears(10)); _publicCertificate = certificateTools.GetPublicCertificate(_fullCertificate); } }
public async Task <ActionResult <string> > CreateCertificate(string certificateName = "certificate_name", string certificatePassword = "******", int expirationInYears = 10) { await Task.Delay(0); try { DateTime expiration = DateTime.UtcNow.AddYears(expirationInYears); using (X509Certificate2 certificate = _certificateTools.CreateSignedPrivateCertificate(certificateName, certificatePassword, expiration)) { string ret = _certificateTools.ExportToPEM(certificate); return(this.Ok(ret)); } } catch (Exception ex) { _logger?.LogError($"Unknown Exception. Type: {ex.GetType().ToString()} ; Message: {ex.Message} ; Details: {ex.ToString()}"); return(this.StatusCode(StatusCodes.Status500InternalServerError)); } }