コード例 #1
0
ファイル: IIS.cs プロジェクト: XienSingh/AutomatingIISStuff
 public IIS(ILogService log, IStorePlugin store, ScheduledRenewal target, IISClient iisClient, string identifier) :
     base(log, target, identifier)
 {
     _storePlugin = store;
     _iisClient   = iisClient;
     _tempSiteId  = target.Binding.ValidationSiteId ?? target.Binding.TargetSiteId;
 }
コード例 #2
0
 void IInstallationPlugin.Install(IStorePlugin store, CertificateInfo newCertificate, CertificateInfo oldCertificate)
 {
     if (!(store is CertificateStore))
     {
         // Unknown/unsupported store
         var errorMessage = "This installation plugin cannot be used in combination with the store plugin";
         _log.Error(errorMessage);
         throw new InvalidOperationException(errorMessage);
     }
     _iisClient.UpdateFtpSite(_options.SiteId, newCertificate, oldCertificate);
 }
コード例 #3
0
ファイル: IISWeb.cs プロジェクト: zoka-ml/win-acme
        void IInstallationPlugin.Install(IStorePlugin store, CertificateInfo newCertificate, CertificateInfo oldCertificate)
        {
            var bindingOptions = new BindingOptions().
                                 WithThumbprint(newCertificate.Certificate.GetCertHash());

            if (store is CentralSsl)
            {
                if (_iisClient.Version.Major < 8)
                {
                    var errorMessage = "Centralized SSL is only supported on IIS8+";
                    _log.Error(errorMessage);
                    throw new InvalidOperationException(errorMessage);
                }
                else
                {
                    bindingOptions = bindingOptions.WithFlags(SSLFlags.CentralSSL);
                }
            }
            else if (store is CertificateStore)
            {
                bindingOptions = bindingOptions.WithStore(newCertificate.StorePath);
            }
            else
            {
                // Unknown/unsupported store
                var errorMessage = "This installation plugin cannot be used in combination with the store plugin";
                _log.Error(errorMessage);
                throw new InvalidOperationException(errorMessage);
            }

            // Optionaly overrule the standard IP for new bindings
            if (!string.IsNullOrEmpty(_options.NewBindingIp))
            {
                bindingOptions = bindingOptions.WithIP(_options.NewBindingIp);
            }

            // Optionaly overrule the standard port for new bindings
            if (_options.NewBindingPort > 0)
            {
                bindingOptions = bindingOptions.WithPort(_options.NewBindingPort.Value);
            }

            var oldThumb = oldCertificate?.Certificate?.GetCertHash();

            foreach (var part in _target.Parts)
            {
                _iisClient.AddOrUpdateBindings(
                    part.Identifiers,
                    bindingOptions.WithSiteId(_options.SiteId ?? part.SiteId),
                    oldThumb);
            }
        }
コード例 #4
0
        /// <summary>
        /// Find the most recently issued certificate for a specific target
        /// </summary>
        /// <param name="target"></param>
        /// <returns></returns>
        public CertificateInfo Certificate(IStorePlugin store)
        {
            var thumbprint    = Thumbprint;
            var useThumbprint = !string.IsNullOrEmpty(thumbprint);

            if (useThumbprint)
            {
                return(store.FindByThumbprint(thumbprint));
            }
            else
            {
                return(null);
            }
        }
コード例 #5
0
        /// <summary>
        /// Find the most recently issued certificate for a specific target
        /// </summary>
        /// <param name="target"></param>
        /// <returns></returns>
        public static CertificateInfo Certificate(this Renewal renewal, IStorePlugin store)
        {
            var thumbprint    = renewal.Thumbprint();
            var useThumbprint = !string.IsNullOrEmpty(thumbprint);

            if (useThumbprint)
            {
                return(store.FindByThumbprint(thumbprint));
            }
            else
            {
                return(null);
            }
        }
コード例 #6
0
ファイル: Script.cs プロジェクト: martintoreilly/win-acme
        void IInstallationPlugin.Install(IStorePlugin store, CertificateInfo newCertificate, CertificateInfo oldCertificate)
        {
            var parameters = _options.ScriptParameters;

            parameters = parameters.Replace("{0}", newCertificate.SubjectName);
            parameters = parameters.Replace("{1}", _renewal.PfxPassword);
            parameters = parameters.Replace("{2}", newCertificate.CacheFile.FullName);
            parameters = parameters.Replace("{3}", newCertificate.StorePath);
            parameters = parameters.Replace("{4}", newCertificate.Certificate.FriendlyName);
            parameters = parameters.Replace("{5}", newCertificate.Certificate.Thumbprint);
            parameters = parameters.Replace("{6}", newCertificate.CacheFile.Directory.FullName);
            parameters = parameters.Replace("{7}", _renewal.Id);

            parameters = parameters.Replace("{CachePassword}", _renewal.PfxPassword);
            parameters = parameters.Replace("{CacheFile}", newCertificate.CacheFile.FullName);
            parameters = parameters.Replace("{CacheFolder}", newCertificate.CacheFile.FullName);
            parameters = parameters.Replace("{CertCommonName}", newCertificate.SubjectName);
            parameters = parameters.Replace("{CertFriendlyName}", newCertificate.Certificate.FriendlyName);
            parameters = parameters.Replace("{CertThumbprint}", newCertificate.Certificate.Thumbprint);
            parameters = parameters.Replace("{StoreType}", _renewal.StorePluginOptions.Name);
            parameters = parameters.Replace("{StorePath}", newCertificate.StorePath);
            parameters = parameters.Replace("{RenewalId}", _renewal.Id);
            RunScript(_options.Script, parameters);
        }
コード例 #7
0
 void IInstallationPlugin.Install(IStorePlugin store, CertificateInfo newCertificateInfo, CertificateInfo oldCertificateInfo)
 {
 }