使用openssl生成sha256自签名证书

首先建立ca

生成 RSA 密钥对:

openssl genrsa -out ca.key 2048

若想对私钥进行加密可以加上 -des3 参数

生成 ca crt:

openssl req -new -x509 -days 365 -key ca.key -out ca.crt

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 a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
Country Name (2 letter code) [XX]:CN # 国家代码
State or Province Name (full name) []:XX # 省份
Locality Name (eg, city) [Default City]:XX # 城市
Organization Name (eg, company) [Default Company Ltd]:XX # 组织名称
Organizational Unit Name (eg, section) []:XX # 组织单元名称
Common Name (eg, your name or your server’s hostname) []:XX # 由此ca签的证书颁发者名
Email Address []:[email protected] #使用者的邮箱

sha256

站点证书的生成

生成证书的RSA 密钥(当然你要是很懒同时测试使用,也可以直接使用CA的KEY)

openssl genrsa -out xxx.key 2048

生成csr证书(假设需要签SSL证书的域名为: yoursafe.cn):

openssl req -new -key xxx.key -subj "/C=CN/ST=XX/L=XX/O=XX/OU=XX/CN=XX" -sha256 -out xxx.csr

注:中间的参数请参考上方,使用 -subj 可以简化一些证书信息的录入过程,使用 -sha256 将采用sha256加密,openssl默认采用sha1加密,而现代已将 sha1 加密方式认定为非安全,故使用sha2。

检查 csr 的正确性:

openssl req -in xxx.csr -text

检查其中 Signature Algorithm 是不是 sha256WithRSAEncryption。

利用 ca 生成 crt:

openssl x509 -req -days 365 -in xxx.csr -CA ca.crt -CAkey ca.key -sha256 -out xxx.crt

检查 crt 的正确性:

openssl x509 -in xxx.crt -text

同样检查 Signature Algorithm 是不是sha256WithRSAEncryption。

相关推荐:
当这个标志被设置为true或不设置该标志时应用程序数据可以备份和恢复,adb调试备份允许恶意攻击者复制应用程序数据。 在AndroidManifest.xml中设置android:allowBackup=\"false\"。
OhSoft的主要产品oCam是一个功能强大的视频录制程序,可以录制视频,通过您的个人电脑在显示器上播放。 长期以来,世界上有很多人使用这个解决方案,所以这个方案得到了优化。该解决方案可以有效地录制包括 …
搜狗输入法智慧版是基于搜索引擎技术的新一代拼音输入法。由搜狗公司推出,具有手写输入、云计算、智能标点等出色功能,在文字输入速度、词库的广度、词语的准确度上表现突出。 该款输入法在输入方面主要采 …
/etc/hosts.allow和/etc/hosts.deny两个文件是控制远程访问设置的,通过他可以允许或者拒绝某个ip或者ip段的客户访问linux的某项服务。 比如SSH服务,我们通常只对管理员开放,那我们就可以禁用不必要的IP …
使用隐式intent进行广播会造成数据泄露、拒绝服务、钓鱼等安全问题。 使用Intent.setPackage 、Intent.setComponent、Intent.setClassName、Intent.setClass、new Intent(context,Receivered.class)中任一 …
拿起手机扫一扫即可带走我!