【https】lighttpd增加https支持及openssl生成CA(Certificate Authority)和使用CA来制作签名证书操作说明

环境说明

       ubuntu18.04.1、openssl指令需要支持

openssl生成CA(Certificate Authority)

生成RSA Private Key

 openssl genrsa -out ca.key

输出信息

$ openssl genrsa -out ca.key
Generating RSA private key, 2048 bit long modulus (2 primes)
........................................................................................+++++
.............................................................................................+++++
e is 65537 (0x010001)

备注:默认是2048 bit,也可以指定为4096,指令如下

openssl genrsa -out ca.key 4096

生成CA证书

CA配置文件

新建ca.conf文件,然后添加以下内容

basicConstraints = CA:TRUE
keyUsage = cRLSign, keyCertSign
[req]
distinguished_name = req_distinguished_name
prompt = no
[req_distinguished_name]
C   = CN
ST  = GuangDong
L   = ShenZhen
CN  = My Test Root CA

C:表示国家  ST是省份 L是区域 CN是Common Name,CN将会显示到证书路径

生成证书指令

openssl req -x509 -new -sha512 -nodes -key ca.key -days 3650 -out ca.crt -config ca.conf

-x509 :输出证书而不是证书签名请求 (CSR)。
-sha512: 指定将用于对证书进行签名的哈希函数。此处可以使用其他值,例如 sha256 和 sha384。
-nodes :表示证书应未加密。
-key ca.key :指定我们用来签名的私钥。
-days 3650:指定证书的有效天数,3650=10年。
-out ca.crt :指定输出文件名。
-config ca.conf :指定了我们希望使用的配置文件。

执行之后,在当前目录下生成如下文件

$ ls
ca.crt  ca.key

Openssl创建主机证书(Host Certificate)

生成RSA Private Key

openssl genrsa -out server.key

输出信息

$ openssl genrsa -out server.key
Generating RSA private key, 2048 bit long modulus (2 primes)
..........................................+++++
............................................................................+++++
e is 65537 (0x010001)

备注:2048 bits是标准大小,也可以指定为4096 bits,指令如下

openssl genrsa -out server.key 4096

生成CSR(Certificate Signing Request)

新建CSR配置文件

创建server.conf,添加以下内容

[req]
default_md = sha512
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
[req]
distinguished_name = req_distinguished_name
req_extensions = req_ext
prompt = no
[req_distinguished_name]
C   = CN
ST  = GuangDong
L   = ShenZhen
O   = My Company
OU  = My Division
CN  = mytesting.cn
[req_ext]
subjectAltName = @dns_dir_names
[dns_dir_names]
DNS.1 = mytesting.cn
DNS.2 = *.mytesting.cn

创建CSR

openssl req -new -sha512 -nodes -key server.key -out server.csr -config server.conf

生成csr和key

server.csr  server.key

生成证书

新建配置文件

修改配置参数server_ext.conf,添加以下内容

basicConstraints = CA:FALSE
nsCertType = server
nsComment = "My webserver Certificate"
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid,issuer:always
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @dns_dir_names
[dns_dir_names]
DNS.1 = mytesting.cn
DNS.2 = *.mytesting.cn

签名CSR

openssl x509 -req -sha512 -days 3650 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -extfile server_ext.conf

生成文件server.crt,webserver需要server.crt和server.key

生成pem证书文件

openssl x509 -in server.crt -out server.pem -outform PEM

文件名称server.pem,webserver使用需要用到server.key和server.pem

合并server.key和server.pem到一个文件

cat server.key >> server.pem 

查看证书内容

openssl x509 -in server.pem -noout -text

$ openssl x509 -in server.pem -noout -text
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            07:93:5b:79:ac:04:a9:5f:74:3c:23:4c:fd:5c:28:8d:b3:2e:a7:12
        Signature Algorithm: sha512WithRSAEncryption
        Issuer: C = CN, ST = GuangDong, L = ShenZhen, CN = My Test Root CA
        Validity
            Not Before: Nov 16 06:17:06 2022 GMT
            Not After : Nov 13 06:17:06 2032 GMT
        Subject: C = CN, ST = GuangDong, L = ShenZhen, O = My Company, OU = My Division, CN = mytesting.cn
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                RSA Public-Key: (2048 bit)
                Modulus:
                    00:ad:d3:c8:78:16:0a:f3:f2:de:50:33:94:5b:0b:
                    64:71:a1:76:e6:37:2c:09:6b:7e:35:8e:6d:10:1e:
                    3e:9c:75:c0:e6:0d:b1:4e:32:8d:21:80:b6:4c:f4:
                    45:07:5a:67:e4:fd:af:de:4d:1f:c5:92:f5:d3:52:
                    78:ef:2c:58:b6:42:0d:f6:aa:9a:b4:64:1a:33:e7:
                    76:93:4c:8d:ab:1e:b3:d4:35:12:45:5d:f7:53:c4:
                    a3:60:bf:78:5d:c9:15:f8:1c:22:af:c2:dc:3a:d5:
                    10:94:6e:3c:32:05:7b:8e:f3:d2:4a:7b:c2:8d:11:
                    dd:6b:35:38:cd:0e:26:ec:5b:8f:92:47:64:dd:68:
                    e7:6a:aa:12:bc:2b:97:f8:f5:a5:3e:e5:c9:9d:a5:
                    2a:ce:51:2f:74:28:ce:dd:44:33:d9:b2:17:f2:a0:
                    72:57:9f:70:ae:1f:96:4c:30:6c:2b:16:e2:20:de:
                    86:cf:b6:6a:13:40:fb:7d:07:04:80:a6:85:ae:72:
                    a2:c9:11:75:30:a7:f0:10:7b:82:63:aa:f9:44:e5:
                    5f:c3:6b:42:46:17:8d:d2:33:c1:be:d1:81:2c:13:
                    97:dd:3d:8f:98:3a:fe:b6:da:f3:21:8e:d0:a8:b5:
                    6e:93:87:9e:54:5f:51:78:03:e3:48:54:de:c2:21:
                    e5:d9
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Basic Constraints: 
                CA:FALSE
            Netscape Cert Type: 
                SSL Server
            Netscape Comment: 
                My webserver Certificate
            X509v3 Subject Key Identifier: 
                1C:D9:B5:4E:17:C7:3F:DC:B3:13:FA:D2:27:DB:3D:62:C9:68:5E:51
            X509v3 Authority Key Identifier: 
                DirName:/C=CN/ST=GuangDong/L=ShenZhen/CN=My Test Root CA
                serial:2E:17:36:B8:DE:A6:EA:76:90:DE:EE:09:37:7D:DA:AE:FE:1D:48:68

            X509v3 Key Usage: 
                Digital Signature, Non Repudiation, Key Encipherment
            X509v3 Extended Key Usage: 
                TLS Web Server Authentication
            X509v3 Subject Alternative Name: 
                DNS:mytesting.cn, DNS:*.mytesting.cn
    Signature Algorithm: sha512WithRSAEncryption
         b5:05:8c:83:8c:d8:58:13:9f:5f:4f:60:c9:94:34:4c:87:49:
         8a:65:74:c4:18:ea:0b:3d:3b:61:3a:5f:ee:4b:1a:93:7d:07:
         84:b7:08:5b:ee:22:7c:06:9c:ce:ec:d9:29:26:6d:fa:52:14:
         b3:ad:b3:dd:46:ab:61:aa:66:6c:e6:17:42:d1:43:f3:ef:e4:
         fb:1f:37:1e:cb:1e:f0:71:c1:28:97:22:45:c2:8b:d1:0d:7b:
         72:45:27:06:93:68:33:e2:62:4e:39:e8:60:82:c2:f8:2b:30:
         69:8e:31:d0:bd:43:20:51:07:e6:76:fd:5b:7a:56:38:56:de:
         0a:7b:46:f3:84:e4:3b:10:c6:6a:8a:0b:28:ca:7d:a2:0f:7b:
         03:0c:de:6b:e1:d5:c6:23:dc:f5:83:af:29:95:39:8a:ec:38:
         61:09:0d:b6:95:6a:d3:49:17:a8:cc:96:d6:bf:9a:5d:f4:ed:
         78:5f:c1:71:a6:a9:43:94:51:72:82:40:5f:d7:d4:1b:30:56:
         97:a1:b3:80:2b:36:4f:3d:3b:5a:a0:1e:3c:02:ad:31:d8:42:
         18:0a:84:04:31:05:91:0d:e8:70:ec:ce:43:d3:85:73:47:a7:
         d5:39:48:5f:93:fc:03:56:e8:ce:67:2b:36:7f:bf:ac:61:d4:
         f3:f6:d7:b8

lighttpd增加支持https修改

修改lighttpd.conf配置

在server.modules 中增加mod_openssl,同时增加以下配置


$SERVER["socket"] == "0.0.0.0:443" {
ssl.engine = "enable"
ssl.pemfile = "/var/lighttpd/server-crt.pem"
 server.document-root = "/tmp/www/"
}

重启lighttpd服务器

lighttpd -f /var/lighttpd/lighttpd.conf &

测试

使用google浏览器,访问webserver

 

 

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wellnw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值