1.如何分离p12或pfx文件中的源码证书和私钥?
2.Linuxlinux下OpenSSL的RSA密钥生成
3.如何生成CA证书?
4.CentOS下生成自签名的证书的方法详解
如何分离p12或pfx文件中的证书和私钥?
p(或者pfx)文件里一般存放有CA的根证书,用户证书和用户的私钥假设我们有一个test.p文件
在安装了openssl的linux服务器上执行以下命令:
提取用户证书:
opensslpkcs-intest.p-clcerts-nokeys-outcert.pem//pem格式opensslpkcs-intest.p-clcerts-nokeys-outcert.crt//crt格式
如果需要携带秘钥,则去掉-nokeys
opensslpkcs-intest.p-clcerts-outcert.pem//pem格式opensslpkcs-intest.p-clcerts-outcert.crt//crt格式
提取私钥:
opensslpkcs-intest.p-nocerts-outkey.pem
清除秘钥中的密码(在把秘钥部署到某些服务器上时可能需要清除密码)
opensslrsa-inkey.pem-outnewkey.pem
在java中pkcs和jks的相互转换:
JKS→Pkeytool-importkeystore-srckeystorekeystore.jks-srcstoretypeJKS-deststoretypePKCS-destkeystorekeystore.pP→JKS
keytool-importkeystore-srckeystorekeystore.p-srcstoretypePKCS-deststoretypeJKS-destkeystorekeystore.jks
Linuxlinux下OpenSSL的RSA密钥生成
在Linux系统中,OpenSSL是源码一个常用的加密工具,本文将指导如何在该环境下生成RSA密钥对。源码首先,源码有两条主要的源码安装途径:源码安装和yum包安装。
1. 源码安装:
- 下载openssl-1.0.0e.tar.gz压缩包,源码直播源码架设将其放在根目录。源码
- 使用命令`tar -xzf openssl-openssl-1.0.0e.tar.gz`解压缩,源码得到openssl-1.0.0e文件夹。源码
- 进入解压目录并设定安装路径,源码例如`./config --prefix=/usr/local/openssl`。源码
- 确认安装配置无误后,源码执行`./config -t`,源码然后编译安装:`make`。源码xmodem posix 源码
2.
使用yum包安装:
- 可以通过`yum install openssl* -y`快速安装,源码但本文重点在于自定义密钥生成。
要生成RSA密钥对,首先生成位的私钥:
- 输入`genrsa -out rsa_private_key.pem `,私钥会保存为rsa_private_key.pem,需妥善保管。
接着,根据私钥生成公钥:
- 使用`rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem`命令,公钥会保存为rsa_public_key.pem。
对于更安全的存储,可以生成PKCS8格式的私钥:
- 执行`pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt`,私钥将被转换为PKCS8格式。
生成的dnf首页源码公钥可以使用`cat rsa_public_key.pem`查看,注意保持文件格式,以便正确进行加密和解密操作。
总之,通过上述步骤,您可以在Linux下成功生成和管理RSA密钥对,确保开发语言如PHP中的安全使用。
如何生成CA证书?
创建根证书密钥文件(自己做CA)root.key:创建根证书的申请文件root.csr:
创建一个自当前日期起为期十年的根证书root.crt:
创建服务器证书密钥server.key:
创建服务器证书的申请文件server.csr
创建自当前日期起有效期为期两年的服务器证书server.crt
创建客户端证书密钥文件client.key
创建客户端证书的申请文件client.csr
创建一个自当前日期起有效期为两年的客户端证书client.crt
将客户端证书文件client.crt和客户端证书密钥文件client.key合并成客户端证书安装包client.pfx
保存生成的文件备用,其中server.crt和server.key是配置单向SSL时需要使用的证书文件,client.crt是配置双向SSL时需要使用的证书文件,client.pfx是配置双向SSL时需要客户端安装的证书文件 .crt文件和.key可以合到一个文件里面,把2个文件合成了一个.pem文件(直接拷贝过去就行了)
x证书一般会用到三类文,key,csr,随机答题源码crt。
Key是私用密钥openssl格,通常是rsa算法。
Csr是证书请求文件,用于申请证书。在制作csr文件的时,必须使用自己的私钥来签署申,还可以设定一个密钥。
crt是CA认证后的证书文,(windows下面的,其实是crt),签署人用自己的key给你签署的凭证。
1.key的手机scada源码生成
opensslgenrsa -des3 -out server.key
这样是生成rsa私钥,des3算法,openssl格式,位强度。server.key是密钥文件名。为了生成这样的密钥,需要一个至少四位的密码。可以通过以下方法生成没有密码的key:
opensslrsa -in server.key -out server.key
server.key就是没有密码的版本了。
2.生成CA的crt
opensslreq -new -x -key server.key -out ca.crt -days
生成的ca.crt文件是用来签署下面的server.csr文件。
3.csr的生成方法
opensslreq -new -key server.key -outserver.csr
需要依次输入国家,地区,组织,email。最重要的是有一个common name,可以写你的名字或者域名。如果为了https申请,这个必须和域名吻合,否则会引发浏览器警报。生成的csr文件交给CA签名后形成服务端自己的证书。
4.crt生成方法
CSR文件必须有CA的签名才可形成证书,可将此文件发送到verisign等地方由它验证,要交一大笔钱,何不自己做CA呢。
opensslx -req -days -in server.csr -CA ca.crt -CAkey server.key-CAcreateserial -out server.crt
输入key的密钥后,完成证书生成。-CA选项指明用于被签名的csr证书,-CAkey选项指明用于签名的密钥,-CAserial指明序列号文件,而-CAcreateserial指明文件不存在时自动生成。
最后生成了私用密钥:server.key和自己认证的SSL证书:server.crt
证书合并:
catserver.key server.crt > server.pem
CentOS下生成自签名的证书的方法详解
1.生成自签名的证书通常要配置https的服务器,都需要一个由正式的CA机构认证的X证书。当客户端连接https服务器时,会通过CA的共钥来检查这个证书的正确性。但要获得CA的证书是一件很麻烦的事情,而且还要花费一定的费用。因此通常一些小的机构会是使用自签名的证书。也就是自己做CA,给自己的服务器证书签名。
这个过程有两个主要的步骤,首先是生成自己的CA证书,然后再生成各个服务器的证书并为它们签名。我是用OpenSSL来生成自签名证书的。
第一步是制作CA的证书:
opensslgenrsa-des3-outmy-ca.key
opensslreq-new-x-days-keymy-ca.key-outmy-ca.crt
这会生成my-ca.key和my-ca.crt文件,前者存放着使用my-ca.crt制作签名时必须的密钥,应当妥善保管。而后者是可以公开的。上面的命令为my-ca.key设定的有效期为年。
用命令
opensslx-inmy-ca.crt-text-noout
可以查看my-ca.crt文件的内容。
有了CA证书之后,就可以为自己的服务器生成证书了:
opensslgenrsa-des3-outmars-server.key
opensslreq-new-keymars-server.key-outmars-server.csr
opensslx-req-inmars-server.csr-outmars-server.crt-sha1-CAmy-ca.crt-CAkeymy-ca.key-CAcreateserial-days
前两个命令会生成key、csr文件,最后一个命令则通过my-ca.crt为mars-server.csr制作了x的签名证书。
需要注意的是,在执行上述第二个命令时,CommonName选项应当输入的是服务器的域名,否则在用户通过https协议访问时每次都会有额外的提示信息。
用命令
opensslx-inmars-server.crt-text-noout
可以查看mars-server.crt文件的内容。
2.配置Apache服务器
首先,创建/etc/apache2/ssl目录,将刚刚制作的my-ca.crt、mars-server.key和mars-server.crt文件拷贝到这个目录中。
接着执行命令
a2emodssl
激活Apache的SSL模块,然后在/etc/apache2/sites-enable/中添加虚拟主机,这个过程与添加普通的虚拟主机类似,不同点在于该主机的端口应为。配置如下:
NameVirtualHost*:
VirtualHost*:
ServerNamelocalhost
DocumentRoot/var/www
SSLEngineOn
SSLCipherSuiteHIGH:MEDIUM
SSLProtocolall-SSLv2
SSLCertificateFile/etc/apache2/ssl/mars-server.crt
SSLCertificateKeyFile/etc/apache2/ssl/mars-server.key
SSLCACertificateFile/etc/apache2/ssl/my-ca.crt
Directory/var/www
Orderdeny,allow
Allowfromlocalhost
/Directory
/VirtualHost
VirtualHost*:
ServerNamelocalhost
DocumentRoot/var/www
Directory/var/wwwOrderdeny,allow
Allowfromlocalhost
/Directory
/VirtualHost
以上配置保证了用户在访问和端口时可以看到相同的内容,而仅仅是使用的协议不同。修改好配置后,便可以重启Apache服务器,这时需要输入mars-server.key的密码。用浏览器访问
https://localhost/
这时应当看到一个弹出对话框,让你确认是否信任该站点的证书,选择信任后,便可以查看该站点的内容了。
由于大多数Apache服务器都是在服务器启动时自动启动,为了避免在启动Apache时输入密码,可以用以下命令生成不加密的mars-server.key文件:
opensslrsa-inmars-server.key-outmars-server.key.insecure
用新生成的mars-server.key.insecure代替原有的key文件即可。