相关疑难解决方法(0)

如何以编程方式为WCF服务创建自签名证书?

我有一个自托管的WCF服务器作为本地系统帐户下的Windows服务运行.我正在尝试以编程方式在c#中创建自签名证书,以便使用消息级别安全性与net.tcp端点一起使用.

我使用以下代码,它非常基于如何使用C#创建自签名证书中的接受答案试图解决我的问题的一些小变化.

public static X509Certificate2 CreateSelfSignedCertificate(string subjectName, TimeSpan expirationLength)
{
    // create DN for subject and issuer
    var dn = new CX500DistinguishedName();
    dn.Encode("CN=" + subjectName, X500NameFlags.XCN_CERT_NAME_STR_NONE);

    CX509PrivateKey privateKey = new CX509PrivateKey();
    privateKey.ProviderName = "Microsoft Strong Cryptographic Provider";
    privateKey.Length = 1024;
    privateKey.KeySpec = X509KeySpec.XCN_AT_KEYEXCHANGE;
    privateKey.KeyUsage = X509PrivateKeyUsageFlags.XCN_NCRYPT_ALLOW_DECRYPT_FLAG | X509PrivateKeyUsageFlags.XCN_NCRYPT_ALLOW_KEY_AGREEMENT_FLAG;
    privateKey.MachineContext = true;
    privateKey.ExportPolicy = X509PrivateKeyExportFlags.XCN_NCRYPT_ALLOW_EXPORT_FLAG;
    privateKey.Create();

    // Use the stronger SHA512 hashing algorithm
    var hashobj = new CObjectId();
    hashobj.InitializeFromAlgorithmName(ObjectIdGroupId.XCN_CRYPT_HASH_ALG_OID_GROUP_ID,
        ObjectIdPublicKeyFlags.XCN_CRYPT_OID_INFO_PUBKEY_ANY,
        AlgorithmFlags.AlgorithmFlagsNone, "SHA1");

    // Create the self signing …
Run Code Online (Sandbox Code Playgroud)

.net c# certificate self-signed wcf-security

13
推荐指数
2
解决办法
8708
查看次数

支持https的Owin自主控制台应用程序(无web api,无SignalR)

使用SslStream和socket,我从头开始开发了一个https Web服务器.我可以将证书应用于来自C#代码的流并处理请求.

但是,我并没有弄清楚如何用Owin做到这一点.有没有人知道如何将证书绑定到自托管控制台应用程序?

例:

// Bind the below certificate to Owin host
var certificate = new X509Certificate2("server.pfx", "password");
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅下面的现有Owin主机代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Owin.Hosting;
using AppFunc = System.Func<System.Collections.Generic.IDictionary<string, object>, System.Threading.Tasks.Task>;

namespace Owin.Startup
{
    class Program
    {
        static void Main(string[] args)
        {
            int port = 8888;
            string url = $"http://localhost:{port}";
            using (WebApp.Start<Startup>(url))
            {
                Console.WriteLine($"Hosted: {url}");
                Console.ReadLine();
            }
        }
    }

    public class Startup
    {
        private IAppBuilder app;
        public void Configuration(IAppBuilder app)
        {
#if DEBUG
            app.UseErrorPage(); …
Run Code Online (Sandbox Code Playgroud)

c# ssl self-hosting asp.net-web-api owin

13
推荐指数
1
解决办法
1万
查看次数

支持https的http侦听器以c#编码

我找到了很多答案如何将httplistener设置为使用HTTPS,但每个解决方案都需要使用命令行.我想这是最快的方法,但我想编写C#类来处理这个问题.

在旧的解决方案中,我使用了webserver类(在Internet的某个地方找到,我不记得确切的名称),它允许以这种方式添加证书:

webserver.Certificate = new X509Certificate2("MyCert.pfx", "MyPassword");
Run Code Online (Sandbox Code Playgroud)

有没有办法用httplistener实现这个?从代码显然.

问候.

c# https certificate httplistener

0
推荐指数
1
解决办法
1979
查看次数