1)使用How to create a self-signed certificate with OpenSSL的出色答案在Centos 7.4上生成了自签名证书。
2)当我告诉Jenkins容器使用它们时,它停止工作,并说它无法读取.key文件。
3)使用openssl检查.key文件,它是有效的,但是此检查显示的密钥与.key文件中的密钥不同
4)将显示的密钥复制到新文件,告诉詹金斯使用它。可行。
为什么openssl生成的密钥不起作用,但是openssl检查显示的密钥却是呢?
已采取的确切步骤:
p3<-ggplot(DF, aes(x=SD,y=, colour=col))+
geom_histogram(binwidth = 0.1) +
scale_x_continuous(breaks = seq(-2,4, 1))+
labs(title = "SD from COF")
cd /etc/pki/tls/certs
vim openssl-config.conf
###openssl-config.conf file I created
[ req ]
default_bits = 2048
default_keyfile = server-key.pem
distinguished_name = subject
req_extensions = req_ext
x509_extensions = x509_ext
string_mask = utf8only
prompt = no
[ subject ]
countryName = countryA
localityName = cityB
organizationName = companyC
commonName = server-nameD
emailAddress = emailE
[ x509_ext ]
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid,issuer
basicConstraints = CA:FALSE
keyUsage = digitalSignature, keyEncipherment
subjectAltName = @alternate_names
nsComment = "OpenSSL Generated Certificate"
[ req_ext ]
subjectKeyIdentifier = hash
basicConstraints = CA:FALSE
keyUsage = digitalSignature, keyEncipherment
subjectAltName = @alternate_names
nsComment = "OpenSSL Generated Certificate"
[ alternate_names ]
DNS.1 = DNS-name-1
DNS.2 = DNS-name-2
DNS.3 = DNS-name-3
DNS.4 = DNS-name-4
DNS.5 = DNS-name-5
DNS.6 = DNS-name-6
DNS.7 = DNS-name-7
openssl req -config ./openssl-config.conf -new -x509 -sha256 -newkey rsa:4096 -nodes -keyout certificate.key.pem -days 365 -out certificate.cert.pem
乍一看,旧密钥和新密钥看起来几乎相同,第一个以
开头 openssl rsa -in certificate.key.pem -check
vim fixed-key.key (paste in the key displayed by above command)
新的,有效的开始于
-----BEGIN PRIVATE KEY-----
MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQDEzhA5iBOLImBw
如您所见,第一个在第一行没有RSA,但是将RSA添加到第一行和最后一行以更正位置并不能“修复”密钥文件。旧文件长3272字节,新文件长3243字节。
我在做什么错了?
我希望密钥可以工作或文件已损坏,但是我不能通过openssl检查再次显示来“修复”它。
答案 0 :(得分:0)
没有错。您用来生成密钥的命令以PKCS#8格式将其输出。当您运行openssl rsa -in certificate.cert.pem
命令时,密钥将转换为PKCS#1格式。它是相同的密钥,只是格式不同。
Jenkins probably doesn't support PKCS#8,因此您必须使用PKCS#1格式。
您可以在此处找到PKCS#1和PKCS#8之间的区别:PKCS#1 and PKCS#8 format for RSA private key
如果您想自己查看差异,可以使用以下命令:
openssl asn1parse -in certificate.cert.pem
和
openssl asn1parse -in fixed-key.key