相关疑难解决方法(0)

主题备用名称不会复制到签名证书

我使用自签名CA证书来签署其他证书.对于某些证书,我需要指定主题替代名称.我可以在请求生成期间指定它们(openssl req ...),我在.csr文件中看到它们.然后我使用CA证书进行签名

openssl x509 -req -extensions x509v3_config -days 365 -in ${name}.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out ${name}.crt
Run Code Online (Sandbox Code Playgroud)

以及openssl.cnf文件中的下一节:

[ x509 ]
x509_extensions = x509v3_config

[ x509v3_config ]
copy_extensions = copy
Run Code Online (Sandbox Code Playgroud)

但我在.crt文件中看不到SAN.

我知道有关命令的解决方案,openssl ca ...但我没有有效的[ca]部分,我不想复制/粘贴它而不深入了解它的作用.所以我希望存在另一个带openssl x509 ...命令的解决方案.

ssl openssl ca self-signed

6
推荐指数
2
解决办法
2885
查看次数

已成功与服务器建立连接,但登录过程中发生错误。目标主体名称不正确

我使用 openssl 创建了三个证书

  1. 根CA证书
  2. 服务器证书
  3. 客户证书

服务器端配置:

我在服务器计算机上安装了 server.cer(个人文件夹)和 RootCA(信任根证书颁发机构文件夹)。然后我将服务器证书附加到 MSSSQL(SQL 配置管理器 -> MSSQL 属性 -> 证书下拉列表)。将“强制加密”设置为“否”并重新启动服务。

客户端配置:

我安装了client.cer(个人文件夹)和RootCA(信任根证书颁发机构文件夹)。

以下是创建 RootCA(CertAuthority) 以及 server.cert 和 client.crt 的步骤:

openssl genrsa -des3 -out CertAuthority.key 4096
openssl req -new -x509 -days 3650 -key CertAuthority.key -out CertAuthority.crt
openssl req -new -sha256 -key CertAuthority.key -out server.csr
openssl x509 -req -days 3650 -in server.csr -CA CertAuthority.crt -CAkey CertAuthority.key -set_serial 01 -out server.crt
openssl req -new -sha256 -key CertAuthority.key -out client.csr
openssl x509 -req -days 3650 …
Run Code Online (Sandbox Code Playgroud)

c# encryption ssl kerberos sql-server-2008-r2

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

ssl_accept 上的“无共享密码”,为什么?

用谷歌搜索了很多,没有找到以下问题的任何答案:创建服务器代码和客户端代码,但得到

错误:1408A0C1:SSL 例程:SSL3_GET_CLIENT_HELLO:无共享密码

在服务器上做SSL_connect

下面的代码缩小到仅与 SSL/套接字相关的函数调用的顺序。错误处理代码已在适用的地方应用,以确保调用之前SSL_accept/SSL_connect不返回任何失败代码。我也省略了初始化方法。

我不知道这是否重要,但我在本地主机上同时运行服务器和客户端。

可能有明显的错误,但我对 OpenSSL 还很陌生。

客户端代码 (inparams: hostname, certificate_chain_file, ca_certificate_file):

SSL_library_init();             // <<< To clarify my initialization
OpenSSL_add_all_algorithms();   // <<< To clarify my initialization
SSL_load_error_strings();       // <<< To clarify my initialization
ERR_load_crypto_strings();      // <<< To clarify my initialization (2)
OpenSSL_add_all_ciphers();      // <<< To clarify my initialization (2)
SSL_METHOD const * method = SSLv23_method();  // <<< Updated method
SSL_CTX * ctx = SSL_CTX_new(method);
SSL_CTX_use_certificate_chain_file(ctx, certificate_chain_file));
const long …
Run Code Online (Sandbox Code Playgroud)

encryption openssl

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

在什么情况下,您会将 openssl ca 的 `unique_subject` 设置为 yes?

默认情况下unique_subject设置为yes,这会阻止您使用相同的专有名称签署多个证书。尝试签署此类证书将导致出现以下错误消息。

failed to update database
TXT_DB error number 2
Run Code Online (Sandbox Code Playgroud)

然而,允许重复 DN 有一个明确的用例,即为依赖方颁发具有延长到期日期的证书。例如,一个网站的证书需要在几个月后刷新([1]中已经提出了类似的论点)。在不更改设置的情况下,如果吊销现有证书,则只能颁发具有相同 dn 的新证书。但您可能想给网站所有者一段宽限期,在此期间两个证书都有效。我遇到的唯一其他选择是更改 dn 中与证书不太相关的内容(例如 OU)[2]。

openssl 文档 [3] 有一个条目,unique_subject其中建议选择默认值以便与旧版本兼容。该页面还提到应设置此值no以使 ca 翻转更容易。这对我来说值no是完全可以的,也许应该是默认值。

可以找到对此属性的许多参考,并且通常建议将此值设置为no(在 openssl.cnf 和 index.txt.attr 文件中)[1、2、3、4,等等]。我只发现一个地方有人建议将其保留yes或至少不太关心其实际价值[5]。但是,在那条线索中,只给出了一个空白的声明:

For the use case of a VPN, as EasyRSA was originally intended, the current setting is
best.
Run Code Online (Sandbox Code Playgroud)

是吗?为什么?

我了解该选项的作用以及如何使用它。我找不到的是早期违约的合理性yes

openssl ca 是否尝试使用此默认值解决一些安全问题?
颁发两个具有相同 dn 的证书有哪些风险?
设置时有哪些需要遵循的做法吗unique_subject=no
是否有充分的理由将该值保留为默认设置?

简而言之,是否有支持阻止具有相同 dn 的多个有效证书的论点?

[1] https://github.com/OpenVPN/easy-rsa/issues/40#issuecomment-56191531
[2] https://serverfault.com/a/810608 …

openssl ca

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

IIS的个人CA签名证书给出了“此证书对于所选用途无效”错误

我使用OpenSSL创建了一个CA,并用它来为我的本地主机签名证书,并在我的本地主机Preview-localhost上创建辅助DNS条目。我已将CA证书安装到计算机上的“受信任的根证书”中,并将本地主机证书添加到IIS。当查看签名的本地主机证书时,会看到以下错误:

签署的本地主机证书 签名的本地主机路径

已安装的CA证书表示该证书适用于其查看器上的所有发行和应用程序策略。我已经包括了来自OpenSSL的两个证书的输出。我已经用<description text>替换了所有敏感(以及一些不敏感的信息)。

CA证书

Certificate:
Data:
    Version: 3 (0x2)
    Serial Number:
        <Serial Number
Signature Algorithm: sha256WithRSAEncryption
    Issuer: C=<Country>, ST=<State>, L=<Ventura>, O=<MyOrganization>,
OU=<Some Authority>, CN=<SomeAuthority>/emailAddress=<email address>
    Validity
        Not Before: Apr 27 16:17:41 2015 GMT
        Not After : Apr 24 16:17:41 2025 GMT
    Subject: C=<Country>, ST=<State>, L=<Ventura>, O=<MyOrganization>,
OU=<Some Authority>, CN=<SomeAuthority>/emailAddress=<email address>
    Subject Public Key Info:
        Public Key Algorithm: rsaEncryption
            Public-Key: (2048 bit)
            Modulus:
                <Modulus>
            Exponent: <Exponent>
    X509v3 extensions:
        X509v3 Subject Key Identifier:
            <Subject Key Identifier>
        X509v3 Authority Key Identifier:
            keyid:<keyid>
        X509v3 …
Run Code Online (Sandbox Code Playgroud)

iis ssl https openssl ca

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

签名证书请求错误“期望可信请求”

我尝试使用 openssl 与我自己的 CA 签署证书请求。有两种选择。

  1. openssl x509.

    openssl X509 -req -CA ca.crt -CAkey ca.pem -in bob.csr -out bob.crt -CAcreateserial`
    
    Run Code Online (Sandbox Code Playgroud)

有些帖子说 x509 用于生成自签名证书。

但是使用时发生错误openssl X509

unable to load certificate
6612:error:0906D06C:PEM routines:PEM_read_bio:no start       
line:.\crypto\pem\pem_lib.c:701:Expecting: TRUSTED CERTIFICATE
Run Code Online (Sandbox Code Playgroud)
  1. openssl ca

    openssl ca -in bob.csr -out bob.crt -keyfile ca.key
    
    Run Code Online (Sandbox Code Playgroud)

它需要事先配置 openssl.config。例如,创建 dir ./demoCA

请让我知道哪种方式是正确的。如果openssl x509正确,expecting trusted certificate错误如何解决?非常欣赏!

openssl certificate

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

如何在 Chrome 信任的本地 Windows 虚拟主机开发机器上创建/安装自签名 SSL 证书?

正如标题所说。我开始向站点添加 Service Workers,为了工作,他们需要有效的 SSL 证书。我已经让我的本地开发服务器通过 https 提供自签名证书有一段时间了,尽管 Chrome 给出了我直到现在才忽略的“不安全”消息。我在这里看到了很多类似的问题(使用本地主机),但没有任何与我的确切设置(使用本地主机上的虚拟主机)相匹配的问题,而且我尝试过的任何方法都没有奏效。

我将描述我的设置:

  • 这是针对本地开发机器的。我不需要任何超级安全的东西。我只需要 Chrome 信任它。
  • 我的开发堆栈是 Windows 10 上的 Apache(运行 PHP 和 ColdFusion)。
  • 我在本地(127.0.0.1)使用 Apache 虚拟主机设置了多个站点,例如:
  • 为了让 https 运行在每一个上,我使用了 Shining Light Productions 的 Win64 OpenSSL v.1.1.0e 安装程序,并在我的 Apache httpd-vhosts.conf 中为每个域设置了一个证书。
  • 我使用以下创建我的证书: openssl req –x509 –nodes -sha256 –days 3650 –newkey rsa:2048 –keyout michael.domain1.key –out michael.domain1.crt -subj "/C=US/ST=Michigan/L=SomeCity/O=CompanyName/OU=Dev/CN=michael.domain1.com"
  • 我打开了我的虚拟主机正在使用的 .crt 文件并将其安装到 Windows 受信任的根证书颁发机构。
  • (到目前为止,所有这些都运行良好。我可以通过https://michael.domain1.com访问该站点,但我看到 Chrome 的“不安全”消息。)

在 Chrome Dev Tools Security 选项卡中,我有两个错误:

  • 缺少主题备用名称:此站点的证书不包含包含域名或 IP 地址的主题备用名称扩展。 …

ssl google-chrome ssl-certificate

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

openSSL如何使用SHA256签署证书

我想知道如何使用openSSL工具以sha256作为消息摘要来签署证书签名请求.

我不太明白摘要是否已在请求中计算,或者是否由CA计算.

对于创建请求,工具req允许指定要使用的消息摘要,-sha256是一个选项.

但是,为了签署请求,openSSL提供了两个工具:cax509.但是,这些都不允许使用sha256.根据官方文档,ca仅支持md5,sha1和mdc2.x509仅支持md2,md5,sha1,mdc2.

谢谢.

ssl openssl sha256 ssl-certificate

4
推荐指数
1
解决办法
4648
查看次数

无法在git bash中生成新的CSR

我试图在免费获取Https上生成SSL

我正在git bash(git version 2.9.3.windows.2,mingw64)上执行stepts,但遇到了步骤2证书签名请求)

我在下面输入命令

openssl req -new -sha256 -key domain.key -subj "/" -reqexts SAN -config <(cat /d/Git/usr/ssl/openssl.cnf  <(printf "[SAN]\nsubjectAltName=DNS:dev.xn--p89al22awxc7t2ajoa.com,DNS:dev.stocktalk.kr"))
Run Code Online (Sandbox Code Playgroud)

但是,一个错误使我很烦。

这是错误。有什么问题,如何成功生成?

error on line -1 of /proc/3028/fd/63
7656:error:02001003:system library:fopen:No such process:bss_file.c:175:fopen('/proc/3028/fd/63','rb')
7656:error:2006D080:BIO routines:BIO_new_file:no such file:bss_file.c:178:
7656:error:0E078072:configuration file routines:DEF_LOAD:no such file:conf_def.c:195:
Run Code Online (Sandbox Code Playgroud)

git bash openssl mingw-w64

4
推荐指数
1
解决办法
1191
查看次数

如何使用 SHA256 而不是 sha1 制作 OpenSSL?

我正在尝试使用 wamp64 在本地主机上为 SSL 证书制作私钥。我已经下载了适用于 Windows 64 位的 Shining Light Productions OpenSSL,我可以使用 sha1 制作私钥。

下面的代码可以工作(让我松了一口气)

openssl req -new -x509 -nodes -sha1 -key private.key -out certificate.crt - days
Run Code Online (Sandbox Code Playgroud)

但是,当在 Chrome50+ 中打开该网站时,它告诉我该网站不安全,因为 SHA1 由于其安全漏洞而贬值。我可以将 x509 与 sha256 一起使用还是有更好的命令?

openssl ssl-certificate x509

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