标签: ca

Python 请求 CA 证书作为字符串

目前我们正在使用一种将 CA 证书放在服务器上的方法来访问第三方 API。

certificate_path = os.path.join(CERT_PATH, 'cacert.pem')
certificate_key_path = os.path.join(CERT_PATH, 'cacert.key')
response = requests.get(url, cert=(certificate_path, certificate_key_path))
Run Code Online (Sandbox Code Playgroud)

这是有效的,但我们正在寻找而不是将 CA 证书存储在服务器上,Accounts出于安全目的(客户提出的安全原因)存储在数据库的表中。

所以问题是:

  • 有没有什么方法可以直接将 CA 证书的字符串传递给requests直接(除了将内容写入临时文件)?

  • 是否有任何其他httppython 模块支持在http获取/发布请求中传递 CA 证书的字符串?

  • 我们应该使用其他方法而不是将它们存储在数据库和服务器上吗?

python ca python-requests

10
推荐指数
3
解决办法
7341
查看次数

使用自签名证书和CA的Android SSL HTTP请求

我有一个Android应用程序连接到我们托管的SSL Web服务.Web服务器是apache,它有我们自己创建的CA和自签名SSL证书.

我已将我们的CA证书导入安卓中的用户可信证书部分的Android平板电脑上.

我已经测试了对Web服务器的访问,并且可以确认Web服务证书显示为有效(下面的屏幕截图)

有效证书

以下是安全设置中的证书:

可信证书

现在,当我尝试访问应用程序中的Web服务时,我会触发"无对等证书"异常.

这是简化的SSL实现:

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // allows network on main thread (temp hack)
    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); 
    StrictMode.setThreadPolicy(policy);

    SchemeRegistry schemeRegistry = new SchemeRegistry();
    //schemeRegistry.register(new Scheme("https", SSLSocketFactory.getSocketFactory(), 443));
    schemeRegistry.register(new Scheme("https", newSSLSocketFactory(), 443));


    HttpParams params = new BasicHttpParams();

    SingleClientConnManager mgr = new SingleClientConnManager(params, schemeRegistry);

    HttpClient client = new DefaultHttpClient(mgr, params);

    HttpPost httpRequest = new HttpPost("https://our-web-service.com");

    try {
        client.execute(httpRequest);
    } catch (Exception e) {
        e.printStackTrace(); // …
Run Code Online (Sandbox Code Playgroud)

ssl https android ca self-signed

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

我的ca-certificates.crt问题

(我在Ubuntu 14.10上.uname -r => 3.16.0-31-generic)

apt-get update

Failed to fetch https://get.docker.com/ubuntu/dists/docker/main/binary-amd64/Packages  server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none.
Run Code Online (Sandbox Code Playgroud)

git clone https://github.com/sdelements/lets-chat.git

I can't clone anything - fatal: unable to access 'https://github.com/sdelements/lets-chat.git/': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none.
Run Code Online (Sandbox Code Playgroud)

docker run hello-world

Get https://index.docker.io/v1/repositories/library/hello-world/images: x509: certificate signed by unknown authority.
Run Code Online (Sandbox Code Playgroud)

ls /etc/ssl/certs/ca-certificates.crt -l

-rw-r--r-- 1 root root 1964 Mar 26 18:19 /etc/ssl/certs/ca-certificates.crt
Run Code Online (Sandbox Code Playgroud)

任何线索将不胜感激.

ubuntu ssl ca

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

将属性添加到IBM Bluemix区块链CA(membersrvc.yaml)

我正在研究区块链的概念证明.我正在使用bluemix网络进行区块链和部署我在本地开发的应用程序.我想测试CA功能,并希望向用户添加属性membersrvs.yaml,并执行基于属性的访问控制.但是,当我的网络托管在bluemix上时,我无法找到如何编辑/更新文件.请原谅我,如果这看起来很基本,我仍然对事情有所了解.

ca blockchain hyperledger ibm-cloud

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

了解Hyperledger结构中的各种证书

您好我正在尝试使用hyperledger结构进行块链实现.我做了第一次网络演示,并在其中找到了很多证书.我已经尝试在下面的图片中按层次排列它们. 在此输入图像描述

我有一些与他们有关的问题

  1. 为什么需要所有这些不同类别的证书.像不同的msp tls一样,它们生成一次并在不同位置复制?
  2. 如何在不同的场景中使用这些不同的证书(如注册和通信).
  3. 如果我们不使用cryptogen,那么某些第三方可以生成所有这些证书.
  4. fabric-ca或任何其他第三方CA如何在这里提供帮助.

TIA.

ca hyperledger hyperledger-fabric hyperledger-composer

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

如何使浏览器信任localhost SSL证书?

虽然,有 类似 的问题,甚至是很好的 答案,他们要么不与本地主机过问具体而言,或询问有关一个特定的选项/溶液(自签署VS CA).

有什么选择?他们如何比较?我这样做吗?

openssl localhost ca self-signed ssl-certificate

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

具有自签名CA的客户端SSL无法正常工作

我一直在努力解决SSL问题超过1个月.

我们使用openssl生成自己的CA,服务器和客户端证书.我们还在Apache Web服务器上启用了"SSLrequire"(在htaccess中这可能是错误的),这意味着任何尝试通过服务器上的https连接的人都需要提供有效的证书

步骤如下;

  • 生成CA密钥
  • 生成CA CSR
  • 使用CA Key对CA CSR进行签名

所以我们有自己的CA,用于签署我们的服务器和客户端证书.

下一步

  • 生成服务器密钥
  • 生成服务器CSR
  • 使用CA Key签署服务器CSR

所以我们有服务器证书和服务器私钥,我们在服务器上成功安装

接下来我们

  • 生成客户端密钥
  • 生成客户CSR
  • 使用CA Key签署客户CSR

然后,我们将客户端证书与CA证书一起分发给我们的用户.两者都安装在他们的浏览器中.

在尝试连接时,我们得到了"Peer无法识别并信任颁发证书的CA."错误.

我们发现问题是服务器上未安装自签名CA证书.通常,服务器会向尝试连接到它的设备显示可信CA的列表,并且设备必须发送已由服务器提供的任何CA签名的证书.但由于我们的自签名CA证书未安装在服务器上,因此浏览器可以提供服务器可接受的证书.

所以我们在服务器 - 控制面板Hsphere上安装了CA证书.

我们获取了ca证书的内容并将其复制到服务器上的"证书颁发机构文件"文本区域中,并且服务器不会每次都抱怨它"无法更新SSL配置不同的密钥和证书"

CA证书已经自行签名,因此服务器如何说证书和密钥不同.

我们还尝试将CA证书文件和CA密钥文件的内容复制到"证书颁发机构文件"文本区域,但这也不起作用.

正如我所说,我们一直在努力争取一个多月.如果有人能提供帮助,那将非常感激.如果我们需要支付服务费用,请告诉我们.

提前致谢.

ssl client openssl ca self-signed

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

如何在cygwin(以及一些Linux发行版)上添加企业证书颁发机构(CA)到git

在Cygwin上使用git获取时,您会得到:

Fetching origin
fatal: unable to access 'https://.../...git': SSL certificate problem: self signed certificate in certificate chain
error: Could not fetch origin
Run Code Online (Sandbox Code Playgroud)

该证书被添加到/etc/ssl/certs/ca-bundle.crt其他捆绑的文件,但在接下来的Cygwin更新的问题又出现了.

git ssl cygwin certificate ca

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

使用.start_tls_s()时,如何强制Python LDAP验证/验证SSL证书

我一直在尝试在MacOS X 10.9.5和Python 2.7.9下使用Python-LDAP(版本2.4.19)

我想在调用之后验证我与给定LDAP服务器的连接.start_tls_s()(或者如果无法验证证书则使方法引发和异常).(我也想检查CRL,但这是另一回事).

这是我的代码:

#!python
#!/usr/bin/env python
import ConfigParser, os, sys
import ldap

CACERTFILE='./ca_ldap.bad'
## CACERTFILE='./ca_ldap.crt'

config = ConfigParser.ConfigParser()
config.read(os.path.expanduser('~/.ssh/creds.ini'))
uid = config.get('LDAP', 'uid')
pwd = config.get('LDAP', 'pwd')
svr = config.get('LDAP', 'svr')
bdn = config.get('LDAP', 'bdn')

ld = ldap.initialize(svr)
ld.protocol_version=ldap.VERSION3
ld.set_option(ldap.OPT_DEBUG_LEVEL, 255 )
ld.set_option(ldap.OPT_PROTOCOL_VERSION, 3)
ld.set_option(ldap.OPT_X_TLS_CACERTFILE, CACERTFILE)
ld.set_option(ldap.OPT_X_TLS_DEMAND, True )
ld.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_HARD)

## From: https://stackoverflow.com/a/7810308/149076
## and : http://python-ldap.cvs.sourceforge.net/viewvc/python-ldap/python-ldap/Demo/initialize.py?revision=1.14&view=markup

ld.start_tls_s()

for each in dir(ldap):
    if 'OPT_X_TLS' in each:
        try:
            print '\t*** %s: %s' % …
Run Code Online (Sandbox Code Playgroud)

openssl ca ssl-certificate python-ldap

8
推荐指数
1
解决办法
3330
查看次数

如何在 C# 中验证来自特定根 CA 的证书链

我有一个如下所示的证书链:root CA -> intermediate CA -> client certificate。如何验证收到的证书是否是由“根 CA”显式创建的?

验证整个链条不是问题。这可以这样做:

X509Certificate2 rootCert = new X509Certificate2(rootCertFile);
X509Certificate2 intermediateCert = new X509Certificate2(intermediateCertFile);
X509Certificate2 clientCert = new X509Certificate2(clientCertFile);

chain.ChainPolicy.ExtraStore.Add(rootCert);
chain.ChainPolicy.ExtraStore.Add(intermediateCert);

if(chain.Build(clientCert))
{
    // ... chain is valid
}
Run Code Online (Sandbox Code Playgroud)

这里的问题是证书根据(Windows)证书存储进行验证,但我只想根据特定的根 CA 对其进行验证。

我还认为可以检查是否chain.ChainElements包含我期望的根 CA。但是,如果有人从不同的根 CA 向我发送一条有效链并仅添加我期望的根 CA,该怎么办?

c# security ca x509certificate

8
推荐指数
1
解决办法
6428
查看次数