我使用自签名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 ...命令的解决方案.
我使用 openssl 创建了三个证书
服务器端配置:
我在服务器计算机上安装了 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) 用谷歌搜索了很多,没有找到以下问题的任何答案:创建服务器代码和客户端代码,但得到
错误: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) 默认情况下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,并用它来为我的本地主机签名证书,并在我的本地主机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) 我尝试使用 openssl 与我自己的 CA 签署证书请求。有两种选择。
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)
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错误如何解决?非常欣赏!
正如标题所说。我开始向站点添加 Service Workers,为了工作,他们需要有效的 SSL 证书。我已经让我的本地开发服务器通过 https 提供自签名证书有一段时间了,尽管 Chrome 给出了我直到现在才忽略的“不安全”消息。我在这里看到了很多类似的问题(使用本地主机),但没有任何与我的确切设置(使用本地主机上的虚拟主机)相匹配的问题,而且我尝试过的任何方法都没有奏效。
我将描述我的设置:
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"在 Chrome Dev Tools Security 选项卡中,我有两个错误:
我想知道如何使用openSSL工具以sha256作为消息摘要来签署证书签名请求.
我不太明白摘要是否已在请求中计算,或者是否由CA计算.
对于创建请求,工具req允许指定要使用的消息摘要,-sha256是一个选项.
但是,为了签署请求,openSSL提供了两个工具:ca和x509.但是,这些都不允许使用sha256.根据官方文档,ca仅支持md5,sha1和mdc2.x509仅支持md2,md5,sha1,mdc2.
谢谢.
我试图在免费获取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) 我正在尝试使用 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 ×8
ssl ×5
ca ×3
encryption ×2
bash ×1
c# ×1
certificate ×1
git ×1
https ×1
iis ×1
kerberos ×1
mingw-w64 ×1
self-signed ×1
sha256 ×1
x509 ×1