Beispiel #1
0
        /// <summary>
        /// 生成证书
        /// </summary>
        /// <returns></returns>
        private static bool GenericCertificate()
        {
            string savePathPrefix = Config.CertificateSaveDir;

            if (!savePathPrefix.EndsWith("\\") && !savePathPrefix.EndsWith("/"))
            {
                savePathPrefix += Path.DirectorySeparatorChar + Config.Domain + "_";
            }
            try
            {
                ACMESharpUtils.GetCertificate("cert1", savePathPrefix + "key.pem", savePathPrefix + "csr.pem", savePathPrefix + "certificate.pem", savePathPrefix + "certificate.der", savePathPrefix + "issuer.pem", savePathPrefix + "issuer.der", savePathPrefix + "pkcs12.pfx", Config.PFXPassword, overwrite: true);
                string chinapem = savePathPrefix + "chain.pem";
                if (File.Exists(chinapem))
                {
                    File.Delete(chinapem);
                }
                string content = string.Empty;
                content  = File.ReadAllText(savePathPrefix + "certificate.pem") + "\r\n";
                content += File.ReadAllText(savePathPrefix + "issuer.pem");
                File.WriteAllText(chinapem, content);
            }
            catch (Exception ex)
            {
                Trace.Error("生成证书失败!~", ex);
                return(false);
            }
            return(true);
        }
Beispiel #2
0
        public void ExportCertificate(string certRef, bool pfxOnly = false)
        {
            GetVaultPath();
            if (!Directory.Exists(VaultFolderPath + "\\" + LocalDiskVault.ASSET))
            {
                Directory.CreateDirectory(VaultFolderPath + "\\" + LocalDiskVault.ASSET);
            }

            if (certRef.StartsWith("="))
            {
                certRef = certRef.Replace("=", "");
            }

            if (pfxOnly)
            {
                var ExportPkcs12 = vaultFolderPath + "\\" + LocalDiskVault.ASSET + "\\" + certRef + "-all.pfx";
                ACMESharpUtils.GetCertificate(certRef, ExportPkcs12: ExportPkcs12, overwrite: true);
            }
            else
            {
                var ExportKeyPEM         = vaultFolderPath + "\\" + LocalDiskVault.KEYPM + "\\" + certRef + "-key.pem";
                var ExportCsrPEM         = vaultFolderPath + "\\" + LocalDiskVault.CSRPM + "\\" + certRef + "-csr.pem";
                var ExportCertificatePEM = vaultFolderPath + "\\" + LocalDiskVault.CRTPM + "\\" + certRef + "-crt.pem";
                var ExportCertificateDER = vaultFolderPath + "\\" + LocalDiskVault.CRTDR + "\\" + certRef + "-crt.der";
                var ExportPkcs12         = vaultFolderPath + "\\" + LocalDiskVault.ASSET + "\\" + certRef + "-all.pfx";

                ACMESharpUtils.GetCertificate(
                    certRef,
                    ExportKeyPEM: ExportKeyPEM,
                    ExportCsrPEM: ExportCsrPEM,
                    ExportCertificatePEM: ExportCertificatePEM,
                    ExportCertificateDER: ExportCertificateDER,
                    ExportPkcs12: ExportPkcs12,
                    overwrite: true
                    );
            }
        }