HTTPS心得笔记之OpenSSL生成root CA及签发证书(3)

error while loading serial number
      139996157081440:error:02001002:system library:fopen:No such file or directory:bss_file.c:398:fopen('/etc/pki/CA/serial','r')
      139996157081440:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:400:
 2、问题解决:
    如果不设置工作目录,后续第三步的最后一小步,使用openssl的ca命令产生用户的ca证书时会报错,创��openssl.cnf在使用default-ca时需要使用的SSL的工作目录即可。

B:生成CA根证书(root ca证书)。

步骤:生成CA私钥(.key)-->生成CA证书请求(.csr)-->自签名得到根证书(.crt)(CA给自已颁发的证书)。
# Generate CA private key  --->ca.key

openssl genrsa -out ca.key 2048 

# Generate CSR  --->ca.csr

openssl req -new -key ca.key -out ca.csr 

# Generate Self Signed certificate(CA 根证书)  ---> ca.crt 

openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt 

小插曲:直接根据key文件获取CA根证书的命令

方法:在得到key文件后,执行以下命令:
    openssl req -new -x509 -days 365 -key fd.key -out fd.crt
    如果不想填写那些注册信息,执行以下命令:
    openssl req -new -x509 -days 365 -key fd.key -out fd.crt subj "/C=GB/L=London/O=Feisty Duck Ltd/CN=www.feistyduck.com

C:用自签根证书 ca.crt  给用户证书签名。

步骤:生成私钥(.key)-->生成证书请求(.csr)-->用CA根证书签名得到证书(.crt)

#  private key  --->server.key

openssl genrsa  -out server.key 1024
# generate csr  --->server.csr

openssl req -new -key server.key -out server.csr
# generate certificate  --->server.crt
openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key

小插曲:用CA根证书签名时报错,The mandatory stateOrProvinceName field was missing

1、问题描述:
sudo openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key
Using configuration from /etc/pki/tls/openssl.cnf
Check that the request matches the signature
Signature ok
The mandatory stateOrProvinceName field was missing
2、出现原因:openssl.cnf中CA policy有三个match,必须要填一样的,或者改成optional
3、解决方法:修改配置文件,修改后为:


  # For the CA policy
  [ policy_match ]
  countryName = optional
  stateOrProvinceName = optional
  organizationName = optional
  organizationalUnitName = optional
  commonName = supplied
  emailAddress = optional

D:证书的简单使用。

把server.crt以及server.key保存在服务器端等待程序加载使用;把ca.key保存在客户端,如果客户端需要验证服务器端发的证书时使用。

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/01493195a259d9ba2f5248b6db38fb56.html