使用OPNESSL制作SSL证书
准备工具
安装keytool(jdk自带)、openssl、nginx、web服务
有两种方法生成数字证书,一种是用JDK带的keytool,另一种是用openssl。
我们将利用openssl完成以下表格内容:
完成项 | 输出文件 |
---|---|
CA服务器根证书 | cacert.pem 证书 |
服务器证书 |
servercert.pem 证书 serverkey.pem 私钥 |
客户端证书 |
clientcert.pem 证书 clientkey.pem 私钥 |
先做一个服务端单向认证,最后完成一个服务端客户端双向认证。
制作根证书
制作一个CA私服,取名叫testca。
准备CA工作目录
mkdir "$HOME/testca"
cd "$HOME/testca"
mkdir newcerts private conf
chmod g-rwx,o-rwx private
echo "01" > serial
touch index.txt
$HOME/testca为待建CA的主目录
newcerts子目录将存放CA签署(颁发)过的数字证书(证书备份目录)
private目录用于存放CA的私钥
conf只是用于存放一些简化参数用的配置文件
serial和index.txt分别用于存放下一个证书的序列号和证书信息数据库
生成根证书
配置根证书
创建testca根证书配置文件及内容
vi "$HOME/testca/conf/gentestca.conf"
内容如下
####################################
[ req ]
default_keyfile = $ENV::HOME/testca/private/cakey.pem
default_md = md5
prompt = no
distinguished_name = ca_distinguished_name
x509_extensions = ca_extensions[ ca_distinguished_name ]
organizationName = dong
organizationalUnitName = dong
commonName = ca.dong.com
emailAddress = 55@qq.com[ ca_extensions ]
basicConstraints = CA:true
########################################
申请根证书
CA服务器,自己给自己颁发证书,生成CA的私钥和自签名证书,即根证书。
cd "$HOME/testca"
openssl req -x509 -newkey rsa:2048 -out cacert.pem -outform PEM -days 2190 -config "$HOME/testca/conf/gentestca.conf"
# req 表示发起一个证书签名请求
# -x509 用x509结构替代cert
# -nwekey rsa:2048,新建一个2048 bit的rsa秘钥
# -out 输出的证书文件
# -outform 输出的格式,DER或者PEM
# -days 有效时间2190天
# -config 请求的配置文件,这里是根证书的配置信息
执行过程中需要输入CA私钥的保护密码,假设我们输入密码: 123456
查看一下自己CA证书的内容
openssl x509 -in cacert.pem -text -noout
内容如下:
Certificate:Data:Version: 3 (0x2)Serial Number:f5:b7:91:04:6a:34:13:46Signature Algorithm: md5WithRSAEncryptionIssuer: O=dong, OU=dong, CN=ca.dong.com/emailAddress=55@qq.comValidityNot Before: Feb 23 03:02:01 2021 GMTNot After : Feb 22 03:02:01 2027 GMTSubject: O=dongnaoedu, OU=dong, CN=ca.dong.com/emailAddress=55@qq.comSubject Public Key Info:Public Key Algorithm: rsaEncryptionPublic-Key: (2048 bit)Modulus:00:c0:32:b5:88:87:bd:ad:ef:0d:a1:92:da:22:d3:cc:2b:91:6c:44:60:f3:15:71:1e:87:e1:82:b9:9b:91:55:08:59:11:0c:93:d0:2d:99:7b:bd:e2:43:82:10:6e:f3:48:1e:23:b7:a2:69:d7:6d:c5:bc:0d:c9:b0:fa:7e:3d:fb:6f:f5:03:1f:3e:b4:80:79:aa:c8:13:33:3f:a9:e7:6a:d1:1c:b4:02:e0:5e:7c:b5:58:ac:90:86:89:0e:38:fd:2e:e1:b9:1c:bb:b9:bf:74:e7:b9:58:07:e2:f0:2c:ba:44:76:b3:59:9a:9e:ed:b2:84:02:6b:57:69:f3:5a:1f:7e:0f:76:29:3f:da:8d:f3:72:43:6d:bb:7d:26:6f:6e:31:ce:e5:6f:b5:92:d9:af:65:ea:f4:11:55:10:6d:d6:0f:85:e2:7e:1c:cc:28:96:52:3c:cc:7f:de:c1:50:38:1d:9f:cd:d0:56:15:30:ef:b3:8f:4c:be:9f:e0:f6:ef:01:a4:01:a8:26:33:dc:b6:ab:c3:ed:1a:52:58:54:9d:7b:f2:f7:6f:a2:14:9b:0d:c9:44:62:3e:8d:35:5e:db:88:45:64:65:f3:4b:5e:10:ed:ab:e5:9b:c7:c4:4a:bf:a8:06:c8:36:5f:1e:f1:46:8a:e5:cf:ba:a8:95:91:43Exponent: 65537 (0x10001)X509v3 extensions:X509v3 Basic Constraints: CA:TRUESignature Algorithm: md5WithRSAEncryption6e:78:44:58:ee:00:77:87:b8:21:f7:ab:88:dc:a1:d9:b0:a4:43:18:fc:3a:d5:17:5e:22:a7:43:99:41:9c:21:39:87:72:cb:aa:42:7b:c2:e1:99:2d:2b:b9:6c:ac:5f:d9:db:7e:3d:6b:b2:d6:8c:ab:87:9c:ce:19:ad:e4:e6:43:db:6d:56:85:13:f3:46:55:e1:03:53:9b:aa:18:87:d6:aa:a6:e5:5f:3a:fa:ca:eb:ec:1e:0e:fc:4e:96:17:61:3b:51:f7:3f:b0:5e:33:c1:c4:2e:b9:d2:d3:3a:80:d2:c7:22:c7:aa:ec:86:37:3d:79:cc:88:6a:da:d5:6b:6e:d0:23:ca:a4:7b:7e:11:0a:7e:bb:9d:21:cb:db:33:d9:ab:1f:be:98:c6:25:ad:87:11:e3:26:00:36:5a:09:f8:2e:80:35:30:73:d6:9c:9f:b6:74:3d:1a:b7:5f:9c:53:fd:f6:bb:a4:53:4b:ac:f1:6c:af:8c:21:09:56:eb:41:a0:a3:8e:03:72:dc:97:20:a6:b1:e8:0e:b5:64:10:9b:c6:dc:a6:b0:fb:cd:98:dd:48:6b:0e:56:1e:d4:92:6e:c9:f5:92:e5:79:3a:c2:b5:cd:d2:60:a4:ce:88:74:dc:d9:37:83:7d:ed:49:9e:dc:75:22:fb:74:d9:81:72
准备根证书配置文件
方便以后用它来生成,在它下面的子证书
vi "$HOME/testca/conf/testca.conf"
写入文件内容
####################################
[ ca ]
default_ca = testca # The default ca section[ testca ]
dir = $ENV::HOME/testca # top dir
database = $dir/index.txt # index file.
new_certs_dir = $dir/newcerts # new certs dircertificate = $dir/cacert.pem # The CA cert
serial = $dir/serial # serial no file
private_key = $dir/private/cakey.pem # CA private key
RANDFILE = $dir/private/.rand # random number filedefault_days = 365 # how long to certify for
default_crl_days= 30 # how long before next CRL
default_md = md5 # message digest method to use
unique_subject = no # Set to 'no' to allow creation of# several ctificates with same subject.
policy = policy_any # default policy[ policy_any ]
countryName = optional
stateOrProvinceName = optional
localityName = optional
organizationName = optional
organizationalUnitName = optional
commonName = supplied
emailAddress = optional########################################
单向认证
我们可以用openssl为服务器或用户生成公钥密钥,并用上面创建的CA根证书cacert.pem签发对应的私钥(密钥)的数字证书。
准备目录
我们把服务器相关的东西生成到CA的$HOME/testca/test/server目录里。
mkdir -p "$HOME/testca/test/server"
cd "$HOME/testca/test/server"
创建服务器私钥,并生成testca的证书请求文件
通过req命令,生成一个签名证书申请,使用rsa:1024生成新秘钥,申请证书为testkey.pem,格式为PEM,证书签名参数为-subj指定的内容
openssl req -newkey rsa:1024 -out serverreq.pem -keyout serverkey.pem -keyform PEM -outform PEM -subj "/O=ABCom/OU=servers/CN=servername"# req 表示发起一个证书签名请求
# -nwekey rsa:1024,新建一个1024 bit的rsa秘钥
# -out 输出的证书请求文件
# -keyout 表示存放生成私钥的文件
# -keyform 表示生成的秘钥文件格式,这里是PEM
# -outform 输出的格式,DER或者PEM
# -subj 设置或修改请求证书签名主题
执行命令过程中输入密钥保护密码,我们输入:949494
serverkey.pem为的私钥,serverreq.pem为CA签名证书请求文件。
查看请求文件内容
openssl req -in serverreq.pem -text -noout
内容如下:
Certificate Request:Data:Version: 0 (0x0)Subject: O=ABCom, OU=servers, CN=servernameSubject Public Key Info:Public Key Algorithm: rsaEncryptionPublic-Key: (1024 bit)Modulus:00:b1:c0:a8:e3:ec:1a:75:bc:d9:81:5e:5d:ce:f6:8c:27:16:8b:31:86:95:93:52:b9:68:a0:c1:e2:ce:58:f8:11:40:c7:a2:ae:de:c9:d4:82:0a:d1:8c:1b:66:8c:0e:f8:d8:bf:0f:91:d4:c2:93:02:22:2b:f2:f6:5e:54:99:ac:54:4c:78:1b:ed:5c:64:bb:96:6b:80:03:70:35:ae:18:43:1c:1c:be:09:bd:dc:a2:6b:6c:fe:a3:a9:f7:a0:d9:2b:e6:7d:f2:e9:4d:df:34:11:68:c7:c8:1d:22:76:cd:e0:70:9b:c4:59:69:01:fd:5a:b1:a6:ef:79:c9:f3:fdExponent: 65537 (0x10001)Attributes:a0:00Signature Algorithm: sha256WithRSAEncryption6b:77:27:aa:94:a3:2d:d5:ff:8e:a2:7c:4c:f8:58:35:13:67:f2:87:2e:f5:f3:f5:b5:8d:72:83:a9:cd:f4:6d:0b:bc:21:1d:8e:8c:d8:3c:a3:6d:71:05:ec:2e:5f:e3:4b:93:e6:0b:bb:5b:fe:b8:3a:55:de:8c:f5:d2:01:dd:69:ab:24:a3:d3:0b:30:d5:df:c6:81:34:a7:c7:6a:b8:12:bc:89:2a:53:79:1c:a4:41:bd:77:0d:62:e4:60:ca:94:80:13:79:37:70:b4:6c:3d:87:cf:bd:a6:91:67:08:5f:0d:be:95:fa:ee:b2:e0:c0:55:cd:77:61:f9:5e:9f
CA签发证书
openssl ca -in serverreq.pem -out servercert.pem -config "$HOME/testca/conf/testca.conf"
执行过程中需要输入CA私钥的保护密码,前面设置的123456。
查看证书内容
openssl x509 -in servercert.pem -text -noout
内容如下:
Certificate:Data:Version: 1 (0x0)Serial Number: 2 (0x2)Signature Algorithm: md5WithRSAEncryptionIssuer: O=dong, OU=dong, CN=ca.dong.com/emailAddress=55@qq.comValidityNot Before: Feb 23 06:36:18 2021 GMTNot After : Feb 23 06:36:18 2022 GMTSubject: O=ABCom, OU=servers, CN=servernameSubject Public Key Info:Public Key Algorithm: rsaEncryptionPublic-Key: (1024 bit)Modulus:00:b1:c0:a8:e3:ec:1a:75:bc:d9:81:5e:5d:ce:f6:8c:27:16:8b:31:86:95:93:52:b9:68:a0:c1:e2:ce:58:f8:11:40:c7:a2:ae:de:c9:d4:82:0a:d1:8c:1b:66:8c:0e:f8:d8:bf:0f:91:d4:c2:93:02:22:2b:f2:f6:5e:54:99:ac:54:4c:78:1b:ed:5c:64:bb:96:6b:80:03:70:35:ae:18:43:1c:1c:be:09:bd:dc:a2:6b:6c:fe:a3:a9:f7:a0:d9:2b:e6:7d:f2:e9:4d:df:34:11:68:c7:c8:1d:22:76:cd:e0:70:9b:c4:59:69:01:fd:5a:b1:a6:ef:79:c9:f3:fdExponent: 65537 (0x10001)Signature Algorithm: md5WithRSAEncryptionb4:d0:fc:4c:ec:87:c8:79:c6:27:b0:8b:e0:0b:5b:12:00:10:25:81:92:70:94:8a:aa:1e:29:dd:9f:b5:1a:5d:72:aa:21:e5:b9:15:7c:41:fe:4f:25:b6:b4:20:a6:3f:93:23:5e:33:c5:0c:54:54:8c:21:9e:dc:9a:f3:f9:44:13:8c:b5:91:05:01:51:56:00:96:0e:d5:ff:1a:62:f6:ac:7b:36:ba:a4:09:d4:72:b5:8b:65:e3:c0:84:ca:fc:1f:b2:65:a4:d7:75:3c:3c:cb:ae:4c:31:88:9f:c9:d0:0e:1e:15:5f:cb:5e:a9:28:2f:86:86:2b:76:d5:3d:78:f2:84:8e:ae:d2:53:ea:a0:f9:dd:c7:12:d7:f6:66:9d:cc:cc:20:c0:3e:20:c2:d3:56:52:a5:2a:45:e9:b1:a3:23:2a:9d:ff:27:1a:70:97:24:06:6f:67:0f:30:5f:4b:67:24:0f:5e:f5:9b:07:01:84:29:68:97:5c:9c:15:38:74:46:ce:c8:aa:55:c8:a9:e7:f0:84:3e:30:59:6a:a4:bb:69:50:0b:e9:85:45:3a:ca:2b:6b:e8:c8:fe:7f:ff:ca:fa:11:d4:91:a6:27:70:69:1c:d0:20:c7:70:f0:ff:10:4a:52:b6:d8:2f:8b:b1:56:4c:2a:7d:7e:59:c7:c1
Nginx配置
找到nginx运行的配置文件,将证书servercert.pem及私钥serverkey.pem放到配置目录下,修改内容如下
http {# 配置https服务server {# 开启443端口,ssl安全协议listen 443 ssl;server_name localhost;# 配置证书及服务器私钥ssl_certificate servercert.pem;ssl_certificate_key serverkey.pem;# 会话参数的缓存,所有工作进程之间共享的缓存ssl_session_cache shared:SSL:1m;ssl_session_timeout 5m;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;# 启用的密码ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;# SSLv3和TLS协议时,服务器密码优先于客户端密码ssl_prefer_server_ciphers on;location / {root /data/www/;index welcome.html;}}
}
双向认证
前面我们已经制作了服务器的证书,下面我只需要制作客户端证书就可以了。
创建客户端证书
用openssl创建客户端证书,只有这些CA签发的客户端证书才被服务器信任,才能通过HTTPS访问服务器。这就是“HTTPS服务器验证客户端证书”的关键配置。讲
mkdir -p "$HOME/testca/test/client"
cd "$HOME/testca/test/client"openssl req -newkey rsa:1024 -keyout clientkey.pem -keyform PEM -out clientreq.pem -outform PEM -subj "/O=client/OU=client/CN=client"openssl ca -in clientreq.pem -out clientcert.pem -config "$HOME/testca/conf/testca.conf"
设定执行过程中的密码都是:654321
制作PKCS12格式的客户端证书
PKCS12格式的证书包含私钥和公钥内容,它是描述个人信息交换的语法标准。描述了将用户公钥、私钥、证书和其他相关信息打包的语法或格式。我们制作的这个PKCS#12文件将包含密钥、证书和颁发该证书的CA证书。
openssl pkcs12 -export -in clientcert.pem -inkey clientkey.pem -out client.p12 -name hash -CAfile "$HOME/testca/cacert.pem"
我们将导出密码也设置为:654321
将生成的.p12文件导入到浏览器个人证书列表或USB秘钥U盘中,客户端就能用它来通过服务的验证。
Nginx配置
参考资料
找到nginx运行的配置文件,将服务器证书servercert.pem、钥serverkey.pem、ca根证书cacert.pem放到配置目录下,修改内容如下
http {# 配置https服务server {# 开启443端口,ssl安全协议listen 443 ssl;server_name localhost;# 配置证书及服务器私钥ssl_certificate servercert.pem;ssl_certificate_key serverkey.pem;ssl_client_certificate cacert.pem; # 根级证书公钥,用于验证各个二级clientssl_verify_client on; #开启客户端证书验证# 会话参数的缓存,所有工作进程之间共享的缓存ssl_session_cache shared:SSL:1m;ssl_session_timeout 5m;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;# 启用的密码ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;# SSLv3和TLS协议时,服务器密码优先于客户端密码ssl_prefer_server_ciphers on;location / {root /data/www/;index welcome.html;}}
}
其中ssl_ciphers通过命令
openssl ciphers
来查看,包含有:
ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:SRP-DSS-AES-256-CBC-SHA:SRP-RSA-AES-256-CBC-SHA:SRP-AES-256-CBC-SHA:DH-DSS-AES256-GCM-SHA384:DHE-DSS-AES256-GCM-SHA384:DH-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA256:DH-RSA-AES256-SHA256:DH-DSS-AES256-SHA256:DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA:DH-RSA-AES256-SHA:DH-DSS-AES256-SHA:DHE-RSA-CAMELLIA256-SHA:DHE-DSS-CAMELLIA256-SHA:DH-RSA-CAMELLIA256-SHA:DH-DSS-CAMELLIA256-SHA:ECDH-RSA-AES256-GCM-SHA384:ECDH-ECDSA-AES256-GCM-SHA384:ECDH-RSA-AES256-SHA384:ECDH-ECDSA-AES256-SHA384:ECDH-RSA-AES256-SHA:ECDH-ECDSA-AES256-SHA:AES256-GCM-SHA384:AES256-SHA256:AES256-SHA:CAMELLIA256-SHA:PSK-AES256-CBC-SHA:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:SRP-DSS-AES-128-CBC-SHA:SRP-RSA-AES-128-CBC-SHA:SRP-AES-128-CBC-SHA:DH-DSS-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:DH-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-SHA256:DHE-DSS-AES128-SHA256:DH-RSA-AES128-SHA256:DH-DSS-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA:DH-RSA-AES128-SHA:DH-DSS-AES128-SHA:DHE-RSA-SEED-SHA:DHE-DSS-SEED-SHA:DH-RSA-SEED-SHA:DH-DSS-SEED-SHA:DHE-RSA-CAMELLIA128-SHA:DHE-DSS-CAMELLIA128-SHA:DH-RSA-CAMELLIA128-SHA:DH-DSS-CAMELLIA128-SHA:ECDH-RSA-AES128-GCM-SHA256:ECDH-ECDSA-AES128-GCM-SHA256:ECDH-RSA-AES128-SHA256:ECDH-ECDSA-AES128-SHA256:ECDH-RSA-AES128-SHA:ECDH-ECDSA-AES128-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:SEED-SHA:CAMELLIA128-SHA:IDEA-CBC-SHA:PSK-AES128-CBC-SHA:ECDHE-RSA-RC4-SHA:ECDHE-ECDSA-RC4-SHA:ECDH-RSA-RC4-SHA:ECDH-ECDSA-RC4-SHA:RC4-SHA:RC4-MD5:PSK-RC4-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:SRP-DSS-3DES-EDE-CBC-SHA:SRP-RSA-3DES-EDE-CBC-SHA:SRP-3DES-EDE-CBC-SHA:EDH-RSA-DES-CBC3-SHA:EDH-DSS-DES-CBC3-SHA:DH-RSA-DES-CBC3-SHA:DH-DSS-DES-CBC3-SHA:ECDH-RSA-DES-CBC3-SHA:ECDH-ECDSA-DES-CBC3-SHA:DES-CBC3-SHA:PSK-3DES-EDE-CBC-SHA
‘ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE’这个的大概含义是:
优先级逻辑(摘自https://www.jb51.net/article/68452.htm)
首先选择 ECDHE + AESGCM 密码。这些都是 TLS 1.2 密码并没有受到广泛支持。这些密码目前没有已知的攻击目标。
PFS 密码套件是首选,ECDHE 第一,然后 DHE。
AES 128 更胜 AES 256。有讨论是否 AES256 额外的安全是值得的成本,结果远不明显。目前,AES128 是首选的,因为它提供了良好的安全,似乎真的是快,更耐时机攻击。
向后兼容的密码套件,AES 优先 3DES。暴力攻击 AES 在 TLS1.1 及以上,减轻和 TLS1.0 中难以实现。向后不兼容的密码套件,3DES 不存在.
RC4 被完全移除. 3DES 用于向后兼容。
强制性的丢弃
aNULL 包含未验证 diffie - hellman 密钥交换,受到中间人这个攻击
eNULL 包含未加密密码(明文)
EXPORT 被美国法律标记为遗留弱密码
RC4 包含了密码,使用废弃ARCFOUR算法
DES 包含了密码,使用弃用数据加密标准
SSLv2 包含所有密码,在旧版本中定义SSL的标准,现在弃用
MD5 包含所有的密码,使用过时的消息摘要5作为散列算法
CA的日常操作
签发证书
假设收到一个证书请求文件名为req.pem,文件格式应该是PKCS#10格式(标准证书请求格式)
先查看证书请求的内容
openssl req -in req.pem -text -noout
签发证书
openssl ca -in req.pem -out cert.pem -config "$HOME/testca/conf/testca.conf"
执行过程中会要求输入访问CA的私钥密码,前面设置的123456
命令执行完毕,cert.pem就是签发好的证书,在$HOME/testca/newcerts里也会有一个相同的证书副本,文件名为证书序列号。
查看生成的证书的内容
openssl x509 -in cert.pem -text -noout
作废证书
由于用户私钥泄露或其他情况,需要吊销一个未过期的证书。假设需要被吊销的证书文件为cert.pem,则执行以下命令吊销证书:
openssl ca -revoke cert.pem -config "$HOME/testca/conf/testca.conf"
生成证书作废列表CRL
公开被吊销的证书列表,可以生成证书吊销列表(CRL),执行命令如下
openssl ca -gencrl -out testca.crl -config "$HOME/testca/conf/testca.conf"
还可用-crldays和-crlhours参数来说明下一个吊销列表将在未来某个时候(多少天或多少小时后)发布。
查看检查testca.crl的内容
openssl crl -in testca.crl -text -noout
服务端如何检查该客户端证书是否已经被吊销?我们可以通过检查CRL(Certification Revocation List)即证书吊销列表来做这个工作。
使用OPNESSL制作SSL证书相关推荐
- Mac 上制作 SSL 证书
前言 我们在开发 https 服务时,需要引入相应的 SSL 证书. 今天,我就自己在 Mac 上制作 SSL 证书的过程做个记录. 环境 MacOS 10.15.7 工具 openssl 步骤 第一 ...
- 如何制作SSL证书即https服务支持
如何制作SSL证书即https服务支持 目的 最近需要做个网站,支持https的访问,但是,是内部使用的,不需要对外网开放. 基础知识 在制作之前先了解一下OpenSSL.HTTPS的关系.见http ...
- OpensAS2搭建+AS2证书制作+SSL证书导入(EDI)
参考: https://www.cnblogs.com/chenkeven/p/9257251.html 感谢东郭仔博文 背景: 公司部分业务采用EDI(Electronic data interc ...
- 自己制作ssl证书:自己签发免费ssl证书,为nginx生成自签名ssl证书
Nginx支持多域名ssl证书 导读: 昨天凌晨将公司旗下的另外一个域名也升级成通过ssl证书登录的形式,那里料到过程竟然非常曲折,原因是nginx如果编译的时候使用openssl如果没有添加enab ...
- 使用openSSL制作SSL证书
1.将openSSL的bin目录设置为环境变量 2.set OPENSSL_CONF=E:\OpenSSL-Win32\bin\openssl.cfg 3.以管理员身份运行命令窗口 4.参考文章 ht ...
- centos+tomcate + https协议 SSL证书制作、部署支持iphone、ipa下载安装.ipa程序
使用工具:openssl.keytool 一.制作SSL证书 a)根证书制作 1.创建制作根证书的私钥文件myCA.key openssl genrsa -out /usr/local/myCA.ke ...
- 案例 2:Hadoop集群SSL证书制作
目录 1 案例目标 2 环境要求 3 知识储备 4 案例流程 5 案例实践 Step 1 为hadoop01节点生成根证书 Step2 生成keystore(密钥库) Step 3 向truststo ...
- Https 与 SSl证书 概要
HTTPS简介 超文本传输安全协议(英语:Hypertext Transfer Protocol Secure,缩写:HTTPS,常称为HTTP over TLS,HTTP over SSL或HTTP ...
- windows下部署免费ssl证书(letsencrypt)
随着网络的发展,网络安全也越来越重要,对于网站来说,从Http升级到https也是我们要做的首要事情.要实现https,首先我们需要申请一张SSL证书,这篇文章我主要介绍下边这几个方面: 1. SSL ...
最新文章
- sublime_text配置php调试环境,SublimeText2配置PHP调试环境(在windows环境下)
- dede:php不显示,dede 织梦编辑框显示不出来的问题
- JAVAEE框架之Spring JdbcTemplate
- jQuery学习整理 (12)
- 创建python的虚拟环境(图文教程),并使用。
- 如何学习IOS开发~三个字(学思做)
- ORA-06413 连接未打开的处理办法【独家办法】
- python热力图美化_python如何画热力图?
- mysql+文章显示_jsp+mysql文章内容分页显示
- android模拟器定位失败,Android-无法在模拟器上获取GPS位置
- 架构师主要做些什么,你知道吗?
- vue获取剪切板内容_Vue实现剪贴板复制功能
- 安全检查计算机,计算机可以通过安全检查机吗?
- MapperReducer
- png图片的文件存储格式
- visio设置页元素组
- uniapp中使用拷贝,复制粘贴功能,uniapp,隐藏软键盘
- Tekton 流水线发布首个官方 Beta 版本
- 层次分析法------小学生都会的算法~~~
- 【大数据】SQL的作业题(仅适合初学者)
热门文章
- 导轮式机器人_减少移动底盘研发难题 思岚轮式机器人底盘让机器人开发更简单...
- 初学者的路:市面上android书籍的评价
- Geckofx偏好设置
- 鲁迅美术学院考计算机几级,鲁迅美术学院英语四级考试科目安排2020年上半年...
- HDU-4848 Wow! Such Conquering! 爆搜+剪枝
- Java头歌实验梳理
- 7Zip SFXMaker SFX 自解压 7-Zip: Unsupported method 解决方法
- 区别传统广告联盟,穿山甲的新角色
- Android记事本NotePad应用功能拓展(六)
- 公司砍的就剩我俩了,万万没想到...