Articles of openssl

openssl:使用非DNS主题替代名称生成证书请求

要使用openssl创build一个包含主机替代名称(SAN)的证书请求,我可以使用像这样的configuration文件(剪切): [req] req_extensions = v3_req [ v3_req ] subjectAltName = @alt_names [alt_names] DNS = xyz.example.com 如果我需要提供专有名称或用户主体名称,应如何为用户证书申请configurationalt_names部分? 例如,我试了一下 [alt_names] UPN = [email protected] 但是我得到这个错误: Error Loading request extension section v3_req 5356:error:22075075:X509 V3 routines:v2i_GENERAL_NAME_ex:unsupported option:.\crypto\x509v3\v3_alt.c:557:name=userPrincipalName 5356:error:22098080:X509 V3 routines:X509V3_EXT_nconf:error in extension:.\crypto\x509v3\v3_conf.c:93:name=subjectAltName, value=@alt_names

如何找出一个OpenSSL证书是由某个私钥创build的?

我有一个OpenSSL证书。 我也需要私钥。 我被告知它位于服务器上的某个地方,而且足够真实,我发现了多个SSL密钥文件。 在我用蛮力试用它们之前:如果使用私钥来创build证书,有没有办法在terminal上find?

validationSSH命令是否未被embedded到证书中?

从man 8 sshd关于授权密钥文件格式和command="command"选项: 请注意,该命令可能被sshd_config(5)ForceCommand伪指令或embedded在证书中的命令取代。 使用ssh-keygen -O force-command="command"可以将命令embedded到证书中。 但是,如何validation命令没有embedded到证书中呢? 沿着这些防止意外命令被执行的相同的方法, ForceCommand总是覆盖embedded在证书中的命令吗? 恶意用户可以绕过一个ssh authorized_keys强制命令? 问一个关于安全的更一般的问题,但是目前的答案没有提到embedded在证书中的命令。

使用nginx进行OCSP装订

我在使用nginx进行OCSP装订时遇到了麻烦。 所以我启动openssl ocsp守护进程,然后访问我的站点。 然后它说无效的请求。 我正在使用私人PKI和CA. SSL密钥:8192bit DH密钥2048bit root@wilhelm:/etc/ocsp# openssl ocsp -index index.txt -port 9999 -rsigner oscp.crt -rkey oscp.key -CA cacert.pem -text -out log.txt Waiting for OCSP client connections… Invalid request root@wilhelm:/etc/ocsp# ls cacert.pem index.txt index.txt.attr index.txt.attr.old index.txt.old log.txt ocsp.crt ocsp.key oscp.crt oscp.key root@wilhelm:/etc/ocsp# 服务器正在工作,但我用openssl ocsp -CAfile ../cacert.pem -issuer ../cacert.pem -url http:// * url *:9999 -resp_text […]

重新签发自签名根CA,而不使其签名的证书失效

我为我公司的一些内部服务创build了一个自签名的根证书颁发机构,我自己configuration​​了自己(主要通过HTTPS服务)。 然后,我为这些服务创build了证书,并使用此CA签名。 现在,我想将x509扩展(CRL分发点)添加到根CA,而不会使从此CA发出的现有服务器证书失效。 这可能吗? 我的直觉是“是”,因为据我所知,访问相应的私钥对于证书身份的“完全授权”是必要和充分的。 也就是说,除非在生成(有可能)的情况下将某种随机数与公钥一起并入证书中。 我对SSL证书pipe理还是比较新的,但是我想(我)理解标准信任链的基础知识。 我也很熟悉其他PKIencryption的基本用法:我pipe理SSH密钥并使用GPG进行签名和encryption。 我学习计算机科学,虽然我只是一个自学成才的密码学。 我从来没有为原来的IIRC做过CSR(我认为这是openssl req -new -x509的直接输出)。 当然,我仍然有原始的CA私钥,使用它我能够将原始证书“反向”成证书签名请求: openssl x509 -x509toreq -in MyCA.pem -out MyCA.csr -signkey private/MyCA.key 我希望这将有效地“提取”上面提到的nonce,并允许我重新创build证书,但是这次使用crlDistributionPoints字段,因此所有使用原始CA签名的证书仍然会validation这个新的CA,客户端会从该字段中指定的HTTP URL检索我的(当前为空)CRL文件。 所以我做了一个扩展configuration文件ext.conf : [ cert_ext ] subjectKeyIdentifier=hash crlDistributionPoints=URI:http://security.mycompany.co.za/root.crl 而且我从CSR生成了新版本的根CA: openssl x509 -extfile ./ext.conf -extensions cert_ext -req -signkey private/MyCA.key -in MyCA.csr -out MyNewCA.pem 现在,当我用openssl x509 -text -in MyNewCA.pem | less查看证书时 openssl x509 […]

Nginx在使用https访问时从错误的“虚拟主机”提供内容

我有一台服务器在代理设置中同时运行Nginx和Apache,Nginx为静态内容和Apache提供了非常好的dynamic内容。 这个设置目前正在托pipe同一个网站的两个版本,可以称之为production.com和staging.com。 我刚刚完成了使用SSL的production.com网站的设置,但也发现,如果我使用SSL浏览到staging.com,则会获得production.com网站根目录的内容,这显然是错误的。 我被告知使用SSL和非SSL的默认处理程序,这将消除这种行为,但这是我有麻烦的地方。 现在我有这个configuration包含在nginx.conf default_80.conf server { listen 80; server_name ""; return 444; } default_443.conf server { listen 443 default_server ssl; server_name ""; return 444; } staging.com.conf server { listen 80; server_name staging.com; access_log /var/log/nginx/staging.com.log; # static content folders location ^~ /(images|css|js) { root /var/www/staging.com/current; access_log /var/log/nginx/staging.com.static.log; } # static content files location ~* […]

OpenSSL:如何使用交互式请求的主题替代名称(SAN)生成CSR?

我希望configurationOpenSSL,以便在运行openssl req -new生成新的证书签名请求时,系统会提示我在CSR上包含任何可选主题名称。 我已经将这行添加到了我的openssl.cnf的[req_attributes]部分: subjectAltName = Alternative subject names 这产生了所需的效果,现在我在生成CSR时提示您使用SAN: $ openssl req -new -out test.csr -key ./test.key <<< You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite […]

OpenSSL:genrsa vs genpkey?

为什么OpenSSL提供了两个重叠的实用程序 genpkey : OpenSSL> genpkey – Usage: genpkey [options] where options may be -out file output file -outform X output format (DER or PEM) -pass arg output file pass phrase source -<cipher> use cipher <cipher> to encrypt the key -engine e use engine e, possibly a hardware device. -paramfile file parameters file -algorithm alg the […]

是否有可能在openssl的s_client命令上设置超时?

我有一个脚本,它使用openssl的s_client命令为大量主机提取证书。 其中一些主机将不可避免地因为防火墙而无法访问。 是否有可能将s_client超时设置为比默认值短得多的时间? 我没有看到一个在手册页/帮助文件。 这或者某种封装命令会在X秒后自动终止openssl -s_client。 如果可能的话,我不希望预先testing主机/端口的可用性。

我应该使用哪种openvpn密码?

从性能和安全angular度来看,我应该使用哪种密码与openvpn? 根据http://openvpn.net/index.php/open-source/documentation/howto.html#security ,缺省值是Blowfish,推荐/示例是使用AES-256-CBC,因为其较大的密钥大小。 最佳做法是256位AES吗?