मैं आईआईएस में इस्तेमाल के लिए एक स्व-हस्ताक्षरित प्रमाणपत्र बनाने के लिए यहां पाया गया कि के समान कोड का उपयोग कर रहा: http://blogs.technet.com/b/vishalagarwal/archive/2009/08/22/generating-a-certificate-self-signed-using-powershell-and-certenroll-interfaces.aspxPowerShell का उपयोग बनाने के लिए स्व-हस्ताक्षरित प्रमाणपत्र
वर्क्स ठीक छोड़कर मैं इसे कोई दोस्ताना नाम देना चाहता हूँ जब मैं एक गतिशील रूप से बनाई गई साइट पर प्रमाण पत्र असाइन करना चाहता हूं तो इसे आसान बनाना।
कोई भी जानता है कि उपरोक्त को दोस्ताना नाम सेट करने के लिए कैसे बदला जाए (मैंने कोशिश की है कि कोई फायदा नहीं हुआ)।
PowerShell के माध्यम से एक प्रमाणपत्र बनाने का एक बेहतर तरीका है जो उपयोगकर्ता को जानकारी के लिए संकेत नहीं देता है?
स्क्रिप्ट मैं उपयोग कर रहा हूँ पर फॉलोअप - ऊपर यूआरएल पर आधारित है लेकिन एक cmdlet में बदल गया:
function Add-SelfSignedCertificate
{
[CmdletBinding()]
param
(
[Parameter(Mandatory=$True, ValueFromPipelineByPropertyName=$True)]
[Alias('cn')]
[string]$CommonName
)
$name = new-object -com "X509Enrollment.CX500DistinguishedName.1"
$name.Encode("CN=$CommonName", 0)
$key = new-object -com "X509Enrollment.CX509PrivateKey.1"
$key.ProviderName = "Microsoft RSA SChannel Cryptographic Provider"
$key.KeySpec = 1
$key.Length = 1024
$key.SecurityDescriptor = "D:PAI(A;;0xd01f01ff;;;SY)(A;;0xd01f01ff;;;BA)(A;;0x80120089;;;NS)"
$key.MachineContext = 1
$key.Create()
$serverauthoid = new-object -com "X509Enrollment.CObjectId.1"
$serverauthoid.InitializeFromValue("1.3.6.1.5.5.7.3.1")
$ekuoids = new-object -com "X509Enrollment.CObjectIds.1"
$ekuoids.add($serverauthoid)
$ekuext = new-object -com "X509Enrollment.CX509ExtensionEnhancedKeyUsage.1"
$ekuext.InitializeEncode($ekuoids)
$cert = new-object -com "X509Enrollment.CX509CertificateRequestCertificate.1"
$cert.InitializeFromPrivateKey(2, $key, "")
$cert.Subject = $name
$cert.Issuer = $cert.Subject
$cert.NotBefore = get-date
$cert.NotAfter = $cert.NotBefore.AddDays(90)
$cert.X509Extensions.Add($ekuext)
$cert.Encode()
$enrollment = new-object -com "X509Enrollment.CX509Enrollment.1"
$enrollment.InitializeFromRequest($cert)
$certdata = $enrollment.CreateRequest(0)
$enrollment.InstallResponse(2, $certdata, 0, "")
}
यह एक इंस्टालशील्ड स्क्रिप्ट में शामिल होने जा रहा है इसलिए पॉपअप संवाद makecert.exe शो समस्याग्रस्त है। – roderickprince
क्या selfssl.exe काम करेगा? http://www.robbagby.com/iis/self- हस्ताक्षर- प्रमाणपत्र-on-iis-7-the-easy-way-and-the-most-effective-way/ –