相关疑难解决方法(0)

如何使用OpenSSL创建自签名证书

我正在为嵌入式Linux设备添加HTTPS支持.我尝试使用以下步骤生成自签名证书:

openssl req -new > cert.csr
openssl rsa -in privkey.pem -out key.pem
openssl x509 -in cert.csr -out cert.pem -req -signkey key.pem -days 1001
cat key.pem>>cert.pem
Run Code Online (Sandbox Code Playgroud)

这有效,但我在使用Google Chrome时遇到了一些错误:

这可能不是您要找的网站!
该网站的安全证书不受信任!

我错过了什么吗?这是构建自签名证书的正确方法吗?

ssl openssl certificate ssl-certificate x509certificate

1169
推荐指数
18
解决办法
139万
查看次数

将CERT/PEM证书转换为PFX证书

我已经看到了几个关于如何将PFX转换为证书文件的问题,但我需要采取另一种方式.

我有两个文件:

bob_cert.cert

bob_key.pem

我想将它们转换为单个.pfx文件.有没有这样做的工具?

certificate

162
推荐指数
4
解决办法
29万
查看次数

如何在C#中创建一个简单的代理?

几个星期前我已经下载了Privoxy,为了好玩,我很想知道它的简单版本是如何完成的.

我知道我需要配置浏览器(客户端)以向代理发送请求.代理将请求发送到Web(假设它是一个http代理).代理将收到答案......但代理如何将请求发送回浏览器(客户端)?

我在网上搜索了C#和http代理,但是没有找到让我理解它在幕后正确工作的东西.(我相信我不想要反向代理,但我不确定).

你们有没有一些解释或一些信息让我继续这个小项目?

更新

这就是我的理解(见下图).

步骤1我将所有请求的客户端(浏览器)配置为在Proxy侦听的端口发送到127.0.0.1.这样,请求将不会直接发送到Internet,而是由代理处理.

步骤2代理查看新连接,读取HTTP标头并查看必须执行的请求.他执行请求.

步骤3代理从请求中接收答案.现在他必须从网上发送答案给客户但是怎么样???

替代文字

有用的链接

Mentalis代理:我发现这个项目是一个代理(但我想要的更多).我可能会查看来源,但我真的想要一些基本的东西来理解更多的概念.

ASP代理:我也许可以在这里获得一些信息.

请求反射器:这是一个简单的例子.

这是一个带有简单Http代理Git Hub存储库.

.net c# proxy .net-2.0

139
推荐指数
8
解决办法
15万
查看次数

我应该用netsh.exe做什么appid?

netsh命令想要一个appid(见这里):

netsh http add sslcert ipport=0.0.0.0:8000 certhash=0000000000003ed9cd0c315bbb6dc1c08da5e6 appid={00112233-4455-6677-8899-AABBCCDDEEFF} 
Run Code Online (Sandbox Code Playgroud)

到目前为止,我还无法理解我应该如何知道GUID netsh要我提供的内容.任何提示?

windows ssl wcf netsh

76
推荐指数
3
解决办法
4万
查看次数

在PKCS12导出过程中,OpenSSL挂起,"加载'屏幕'进入随机状态"

我正在使用OpenSSL(而不是makecert)生成自签名SSL证书,以便在IIS中使用.

openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes -subj '//CN=myhost'
Run Code Online (Sandbox Code Playgroud)

(双斜杠是正确的.没有它,上面的命令不起作用.)

openssl pkcs12 -export -out key.pfx -inkey key.pem -in cert.pem -name 'myhost'
Run Code Online (Sandbox Code Playgroud)

第一个命令运行成功完成.然而第二次陷入困境

将"屏幕"加载到随机状态 -

我正在使用Git for Windows(2.6.3)附带的OpenSSL(1.0.2d).有人遇到同样的问题吗?

澄清:问题如何在openssl修复"无法写入'随机状态'"描述了与写入.rnd文件有关的问题.这里的问题似乎是产生随机状态.(仅在第二个命令中.)

windows ssl openssl

60
推荐指数
2
解决办法
2万
查看次数

绑定到端口时,SSL证书添加失败

我使用WCF创建了一个WebService.我正在进行自托管,我想启用HTTPS.根据我对此的理解,我需要创建一个证书并绑定到我想要使用的端口.

以下是我为处理此问题所采取的步骤:

  1. 在我的本地计算机上创建证书以充当根证书颁发机构
    • makecert -n"CN =我的根证书颁发机构"-r -sv RootCATest.pvk RootCATest.cer
  2. 打开MMC.exe并将保存的.cer文件导入"受信任的根证书\ Certificates \"文件夹
    • makecert -sk MyKeyName -iv RootCATest.pvk -n"CN = MyMachineName"-ic RootCATest.cer -sr localmachine -ss my -sky exchange -pe MyMachineName.cer
  3. 从签名的根证书颁发机构创建临时服务证书

    • makecert -sk MyKeyName -iv RootCATest.pvk -n"CN = MyMachineName"-ic RootCATest.cer -sr localmachine -ss my -sky exchange -pe MyMachineName.cer
  4. 试图将证书绑定到端口号(在这种情况下为443)

    • netsh http add sslcert ipport = 0.0.0.0:443 certhash = 2c5ba85bcbca412a74fece02878a44b285c63981 appid = {646937c0-1042-4e81-a3b6-47d678d68ba9}

步骤4的结果是以下错误:

SSL证书添加失败,错误1312

指定的登录会话不存在.它可能已经被终止了.

有没有人知道为什么我可能会收到此错误?

ssl https

59
推荐指数
9
解决办法
7万
查看次数

"参数不正确." 使用netsh http添加sslcert时出错

按照以下链接中的"如何:使用SSL证书配置端口"的说明操作:http://msdn.microsoft.com/en-us/library/ms733791.aspx,我在命令行上输入了此命令(duh) :

> netsh http add sslcert ipport:10.141.146.227:7001 certhash=5d48e604007b867ae8a69260a4ad318d2c05d8ff appid={EDE3C891-306C-40fe-BAD4-895B236A1CC8}
The parameter is incorrect.
Run Code Online (Sandbox Code Playgroud)

我的certhash指纹取自证书(本地计算机)>个人>证书文件夹中的证书.

appidGUID生成.

还有什么问题我需要修复才能让它发挥作用?

ssl-certificate netsh

51
推荐指数
10
解决办法
6万
查看次数

使用ComVisible(false)时指定Guid有什么意义吗?

在Visual Studio中创建新的C#项目时,生成的AssemblyInfo.cs文件包含指定程序集GUID的属性.属性上方的注释表明它"如果此项目暴露给COM".

我的程序集都没有包含需要对COM可见的类型,因此我已经标记了我的程序集[assembly: ComVisible(false)].那么指定GUID有什么意义吗?

我的感觉是答案是"不" - 那么为什么默认的AssemblyInfo.cs文件包含[assembly: ComVisible(false)][assembly: Guid("...")]


编辑:

总结一下回答:

在它们之间,答案解释了当且仅当正在使用COM互操作时才需要指定GUID.所以,在我的情况下,没有必要使用GUID.

sharptooth进一步解释说,[assembly: ComVisible(false)]并不意味着不使用COM互操作,因为可以覆盖ComVisible各个类型.因此,默认的AssembyInfo.cs包含两者[assembly: ComVisible(false)]和GUID.

.net c# com guid comvisible

38
推荐指数
2
解决办法
2万
查看次数

如何将OpenSSL密钥文件导入Windows证书库

我有一个OpenSSL生成的PEM格式的X.509证书和它的关联密钥文件.连接到原型服务器时,此证书是身份验证所必需的.这在Linux上运行良好.我一直在使用Microsoft SChannel API来驱动Windows平台上的SSL/TLS连接,但我想使用相同的测试证书.我可以右键单击证书文件并将其导入我的证书库,但我相信私钥不会随之导入(即使我已将它们连接到同一文件中).

当我去运行SChannel代码时,我在初始化安全上下文时(通过InitializeSecurityContext)收到'SEC_E_NO_CREDENTIALS'错误.我怀疑这意味着缺少私钥.

有谁知道如何测试位于个人(或"我的")证书存储区中的证书中是否存在私钥,通过'certmgr.msc'进行访问?是否可以在商店中导入证书的新密钥文件?

任何见解或建议将不胜感激.

windows openssl schannel x509

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

在MonoTouch上使用HTTPS的HttpListener

我使用HttpListenerMonoTouch 实现了一个非常简单的Web服务器.一切都很好.现在我需要添加HTTPS支持.我试着按照步骤进行操作

Httplistener支持https

但我不知道在MonoTouch中设置证书的位置.只添加前缀"https://*:443"没有帮助,因为没有连接是可能的,并且不会抛出任何异常.

根据http://msdn.microsoft.com/en-us/library/system.net.httplistener.aspx,这可能是因为必须指定服务器证书("您可以使用配置服务器证书和其他侦听器选项HttpCfg.exe").

我怎么能在MonoTouch中做到这一点?

c# https httplistener xamarin.ios ios

9
推荐指数
1
解决办法
2107
查看次数

如何以SoapMessage的形式发送数据并获得回复?

我有一些数据需要以SOAP格式发送到服务器。该服务器将立即确认它已收到消息。几个小时后,我(可能从另一台服务器)收到了一条SOAP消息,其中包含有关已处理数据的信息。

我读了Stackoverflow:如何发送SOAP请求和接收响应。但是,答案是8岁。尽管它们可能仍然有效,但是可能存在更新的技术。

看起来确实如此:Microsoft具有System.Web.Services.Protocols,并且具有SoapMessage,SoapClientMessage,SoapServerMessage等类。

查看这些类,我会发现很多类似SOAP的类(标头,扩展名,客户端消息,服务器消息...通常,所提供的示例向我指示了这些类如何协同工作以及如何使用它们。只能找到有关如何处理已经存在的SOAP消息的示例。

给定一些需要发送的数据,如何将这些数据包装到这些SOAP类之一中并发送此消息?

这些类是否为此目的?还是我应该坚持2011年的方法,您可以通过上面提到的Stackoverflow问题所建议的方式自己将自己的XML数据格式化为SOAP格式来创建SOAP Web请求?

非常抱歉,通常我会写一些我尝试过的东西。las,我看不到提供的SoapMessage类之间的关系。我不知道如何使用它们。

评论后加法

我正在使用Windows Server / Visual Studio(最新版本)/。NET(最新版本)/ C#(最新版本)。

与服务器的通信是相互认证的。我需要用于与服务器通信的证书为PEM(CER / CRT)格式。私钥是RSA。该证书由适当的CA颁发,服务器还将使用适当的CA使用的证书。因此,我不需要创建新的证书(实际上,它不会被接受)。如果需要,我愿意使用OpenSsl之类的程序转换证书。

我尝试使用Apache TomCat进行通信,但是我觉得对于每天发送一条SOAP消息并每天等待一个答案的任务来说,这实在太多了。

也许因为Java对我来说是一种全新的技术,所以我很难看到接收到的消息的内容。回到C#和.NET。

我打算创建一个供控制台应用程序使用的DLL。该函数将流中的某些数据作为输入。它将创建肥皂消息,发送该消息,等待正确接收到该消息的答复,然后等待(可能几个小时)以获取一条包含处理后数据结果的新肥皂消息。为了使正确的报告和取消成为可能,我想最好使用async-await来做到这一点。

如果无法在一个应用程序中完成发送订单和等待结果的操作,我愿意创建一个Windows服务来监听输入,但我希望保持简单。

(虚拟)计算机将仅用于此任务,因此没有其他人需要侦听端口443。每天将发送一封定单消息,每天发送一条结果消息。

c# soap

6
推荐指数
1
解决办法
295
查看次数

即使允许防火墙,HttpListener 也无法通过网络工作

我使用以下代码添加 http 侦听器:

public class WebServer
{
    private readonly HttpListener _listener = new HttpListener();
    private readonly Func<HttpListenerRequest, HttpListenerResponse, string> _responderMethod;

    public WebServer(string[] prefixes, Func<HttpListenerRequest, HttpListenerResponse, string> method)
    {
        if (!HttpListener.IsSupported)
            throw new NotSupportedException(
                "Needs Windows XP SP2, Server 2003 or later.");

        // URI prefixes are required, for example 
        // "http://localhost:8080/index/".
        if (prefixes == null || prefixes.Length == 0)
            throw new ArgumentException("prefixes");

        // A responder method is required
        if (method == null)
            throw new ArgumentException("method");

        foreach (string s in prefixes)
            _listener.Prefixes.Add(s); …
Run Code Online (Sandbox Code Playgroud)

c# networking webserver firewall httplistener

2
推荐指数
1
解决办法
3118
查看次数

支持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
查看次数