openssl3.2/test/certs - 033 - time stamping certificates

这篇具有很好参考价值的文章主要介绍了openssl3.2/test/certs - 033 - time stamping certificates。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

openssl3.2/test/certs - 033 - time stamping certificates

概述

openssl3.2 - 官方demo学习 - test - certs

笔记

/*!

  • \file my_openssl_linux_log_doc_033.txt
  • \note openssl3.2/test/certs - 033 - time stamping certificates
  • 带时间戳的证书
  • 自己调用openssl时, 如果也要动态参数文件(不落地), 也可以参照.sh的用法, 自己建立多个参数输入的管道, 拼好配置文件内容, 再将管道名称传给openssl作为参数
  • 只要openssl命令行需要文件的场合, 我们都可以用程序中建立的有名管道传进去.
    */

// --------------------------------------------------------------------------------
// official bash script
// --------------------------------------------------------------------------------
// openssl3.2/test/certs - 033 - time stamping certificates
./mkcert.sh genee -p critical,timeStamping -k critical,digitalSignature server.example ee-key ee-timestampsign-CABforum ca-key ca-cert
openssl -v

./mkcert.sh genee -p timeStamping -k critical,digitalSignature server.example ee-key ee-timestampsign-CABforum-noncritxku ca-key ca-cert
openssl -v

./mkcert.sh genee -p critical,timeStamping,serverAuth -k critical,digitalSignature server.example ee-key ee-timestampsign-CABforum-serverauth ca-key ca-cert
openssl -v

./mkcert.sh genee -p critical,timeStamping,2.5.29.37.0 -k critical,digitalSignature server.example ee-key ee-timestampsign-CABforum-anyextkeyusage ca-key ca-cert
openssl -v

./mkcert.sh genee -p critical,timeStamping -k critical,digitalSignature,cRLSign server.example ee-key ee-timestampsign-CABforum-crlsign ca-key ca-cert
openssl -v

./mkcert.sh genee -p critical,timeStamping -k critical,digitalSignature,keyCertSign server.example ee-key ee-timestampsign-CABforum-keycertsign ca-key ca-cert
openssl -v

./mkcert.sh genee -p critical,timeStamping server.example ee-key ee-timestampsign-rfc3161 ca-key ca-cert
openssl -v

./mkcert.sh genee -p timeStamping server.example ee-key ee-timestampsign-rfc3161-noncritxku ca-key ca-cert
openssl -v

./mkcert.sh genee -p critical,timeStamping -k digitalSignature server.example ee-key ee-timestampsign-rfc3161-digsig ca-key ca-cert

// --------------------------------------------------------------------------------
// openssl cmd line parse
// --------------------------------------------------------------------------------

// --------------------------------------------------------------------------------
// sh1
// --------------------------------------------------------------------------------
openssl genpkey -algorithm rsa -pkeyopt rsa_keygen_bits:2048 -out ee-key.pem

// cfg_exp033_sh1_cmd2.txt
string_mask=utf8only
[req]
prompt = no
distinguished_name = dn
[dn]
CN = server.example

openssl req -new -sha256 -key ee-key.pem -config cfg_exp033_sh1_cmd2.txt -out ee-key-req.pem

// cfg_exp033_sh1_cmd3.txt
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid, issuer
basicConstraints = CA:false
keyUsage = critical,digitalSignature
extendedKeyUsage = critical,timeStamping
[alts]
subjectAltName = @alts
DNS=server.example
[alts]

openssl x509 -req -sha256 -out ee-timestampsign-CABforum.pem -extfile cfg_exp033_sh1_cmd3.txt -CA ca-cert.pem -CAkey ca-key.pem -set_serial 2 -days 36525 -in ee-key-req.pem

// --------------------------------------------------------------------------------
// sh2
// --------------------------------------------------------------------------------

// cfg_exp033_sh2_cmd1.txt
string_mask=utf8only
[req]
prompt = no
distinguished_name = dn
[dn]
CN = server.example

openssl req -new -sha256 -key ee-key.pem -config cfg_exp033_sh2_cmd1.txt -out ee-key-req-sh2.pem

// cfg_exp033_sh2_cmd2.txt
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid, issuer
basicConstraints = CA:false
keyUsage = critical,digitalSignature
extendedKeyUsage = timeStamping
[alts]
subjectAltName = @alts
DNS=server.example
[alts]

openssl x509 -req -sha256 -out ee-timestampsign-CABforum-noncritxku.pem -extfile cfg_exp033_sh2_cmd2.txt -CA ca-cert.pem -CAkey ca-key.pem -set_serial 2 -days 36525 -in ee-key-req-sh2.pem

// --------------------------------------------------------------------------------
// sh3
// --------------------------------------------------------------------------------

// cfg_exp033_sh3_cmd1.txt
string_mask=utf8only
[req]
prompt = no
distinguished_name = dn
[dn]
CN = server.example

openssl req -new -sha256 -key ee-key.pem -config cfg_exp033_sh3_cmd1.txt -out ee-key-sh3-req.pem

// cfg_exp033_sh3_cmd2.txt
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid, issuer
basicConstraints = CA:false
keyUsage = critical,digitalSignature
extendedKeyUsage = critical,timeStamping,serverAuth
[alts]
subjectAltName = @alts
DNS=server.example
[alts]

openssl x509 -req -sha256 -out ee-timestampsign-CABforum-serverauth.pem -extfile cfg_exp033_sh3_cmd2.txt -CA ca-cert.pem -CAkey ca-key.pem -set_serial 2 -days 36525 -in ee-key-sh3-req.pem

// --------------------------------------------------------------------------------
// sh4
// --------------------------------------------------------------------------------

// cfg_exp033_sh4_cmd1.txt
string_mask=utf8only
[req]
prompt = no
distinguished_name = dn
[dn]
CN = server.example

openssl req -new -sha256 -key ee-key.pem -config cfg_exp033_sh4_cmd1.txt -out ee-key-sh4-cmd1-req.pem

// cfg_exp033_sh4_cmd2.txt
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid, issuer
basicConstraints = CA:false
keyUsage = critical,digitalSignature
extendedKeyUsage = critical,timeStamping,2.5.29.37.0
[alts]
subjectAltName = @alts
DNS=server.example
[alts]

openssl x509 -req -sha256 -out ee-timestampsign-CABforum-anyextkeyusage.pem -extfile cfg_exp033_sh4_cmd2.txt -CA ca-cert.pem -CAkey ca-key.pem -set_serial 2 -days 36525 -in ee-key-sh4-cmd1-req.pem

// --------------------------------------------------------------------------------
// sh5
// --------------------------------------------------------------------------------

// cfg_exp033_sh5_cmd1.txt
string_mask=utf8only
[req]
prompt = no
distinguished_name = dn
[dn]
CN = server.example

openssl req -new -sha256 -key ee-key.pem -config cfg_exp033_sh5_cmd1.txt -out ee-key-sh5_cmd1.pem

// cfg_exp033_sh5_cmd2.txt
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid, issuer
basicConstraints = CA:false
keyUsage = critical,digitalSignature,cRLSign
extendedKeyUsage = critical,timeStamping
[alts]
subjectAltName = @alts
DNS=server.example
[alts]

openssl x509 -req -sha256 -out ee-timestampsign-CABforum-crlsign.pem -extfile cfg_exp033_sh5_cmd2.txt -CA ca-cert.pem -CAkey ca-key.pem -set_serial 2 -days 36525 -in ee-key-sh5_cmd1.pem

// --------------------------------------------------------------------------------
// sh6
// --------------------------------------------------------------------------------

// cfg_exp033_sh6_cmd1.txt
string_mask=utf8only
[req]
prompt = no
distinguished_name = dn
[dn]
CN = server.example

openssl req -new -sha256 -key ee-key.pem -config cfg_exp033_sh6_cmd1.txt -out ee-key-sh6-cmd1-req.pem

// cfg_exp033_sh6_cmd2.txt
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid, issuer
basicConstraints = CA:false
keyUsage = critical,digitalSignature,keyCertSign
extendedKeyUsage = critical,timeStamping
[alts]
subjectAltName = @alts
DNS=server.example
[alts]

openssl x509 -req -sha256 -out ee-timestampsign-CABforum-keycertsign.pem -extfile cfg_exp033_sh6_cmd2.txt -CA ca-cert.pem -CAkey ca-key.pem -set_serial 2 -days 36525 -in ee-key-sh6-cmd1-req.pem

// --------------------------------------------------------------------------------
// sh7
// --------------------------------------------------------------------------------

// cfg_exp033_sh7_cmd1.txt
string_mask=utf8only
[req]
prompt = no
distinguished_name = dn
[dn]
CN = server.example

openssl req -new -sha256 -key ee-key.pem -config cfg_exp033_sh7_cmd1.txt -out ee-key-sh7-cmd1-req.pem

// cfg_exp033_sh7_cmd2.txt
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid, issuer
basicConstraints = CA:false

extendedKeyUsage = critical,timeStamping
[alts]
subjectAltName = @alts
DNS=server.example
[alts]

openssl x509 -req -sha256 -out ee-timestampsign-rfc3161.pem -extfile cfg_exp033_sh7_cmd2.txt -CA ca-cert.pem -CAkey ca-key.pem -set_serial 2 -days 36525 -in ee-key-sh7-cmd1-req.pem

// --------------------------------------------------------------------------------
// sh8
// --------------------------------------------------------------------------------

// cfg_exp033_sh8_cmd1.txt
string_mask=utf8only
[req]
prompt = no
distinguished_name = dn
[dn]
CN = server.example

openssl req -new -sha256 -key ee-key.pem -config cfg_exp033_sh8_cmd1.txt -out ee-key-sh8-cmd1-req.pem

// cfg_exp033_sh8_cmd2.txt
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid, issuer
basicConstraints = CA:false

extendedKeyUsage = timeStamping
[alts]
subjectAltName = @alts
DNS=server.example
[alts]

openssl x509 -req -sha256 -out ee-timestampsign-rfc3161-noncritxku.pem -extfile cfg_exp033_sh8_cmd2.txt -CA ca-cert.pem -CAkey ca-key.pem -set_serial 2 -days 36525 -in ee-key-sh8-cmd1-req.pem

// --------------------------------------------------------------------------------
// sh9
// --------------------------------------------------------------------------------

// cfg_exp033_sh9_cmd1.txt
string_mask=utf8only
[req]
prompt = no
distinguished_name = dn
[dn]
CN = server.example

openssl req -new -sha256 -key ee-key.pem -config cfg_exp033_sh9_cmd1.txt -out ee-key-sh9-cmd1-req.pem

// cfg_exp033_sh9_cmd2.txt
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid, issuer
basicConstraints = CA:false
keyUsage = digitalSignature
extendedKeyUsage = critical,timeStamping
[alts]
subjectAltName = @alts
DNS=server.example
[alts]

openssl x509 -req -sha256 -out ee-timestampsign-rfc3161-digsig.pem -extfile cfg_exp033_sh9_cmd2.txt -CA ca-cert.pem -CAkey ca-key.pem -set_serial 2 -days 36525 -in ee-key-sh9-cmd1-req.pem

// --------------------------------------------------------------------------------
// openssl log
// --------------------------------------------------------------------------------
openssl genpkey -algorithm rsa -pkeyopt rsa_keygen_bits:2048 -out ee-key.pem
openssl req -new -sha256 -key ee-key.pem -config /dev/fd/63

-config /dev/fd/63 => /home/lostspeed/openssl/openssl-3.2.0_debian/test/certs/my_openssl_linux_log.txt

string_mask=utf8only
[req]
prompt = no
distinguished_name = dn
[dn]
CN = server.example
openssl x509 -req -sha256 -out ee-timestampsign-CABforum.pem -extfile /dev/fd/63 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 2 -days 36525

-extfile /dev/fd/63 => /home/lostspeed/openssl/openssl-3.2.0_debian/test/certs/my_openssl_linux_log.txt

subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid, issuer
basicConstraints = CA:false
keyUsage = critical,digitalSignature
extendedKeyUsage = critical,timeStamping
[alts]
subjectAltName = @alts
DNS=server.example

[alts]
openssl -v
openssl req -new -sha256 -key ee-key.pem -config /dev/fd/63

-config /dev/fd/63 => /home/lostspeed/openssl/openssl-3.2.0_debian/test/certs/my_openssl_linux_log.txt

string_mask=utf8only
[req]
prompt = no
distinguished_name = dn
[dn]
CN = server.example
openssl x509 -req -sha256 -out ee-timestampsign-CABforum-noncritxku.pem -extfile /dev/fd/63 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 2 -days 36525

-extfile /dev/fd/63 => /home/lostspeed/openssl/openssl-3.2.0_debian/test/certs/my_openssl_linux_log.txt

subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid, issuer
basicConstraints = CA:false
keyUsage = critical,digitalSignature
extendedKeyUsage = timeStamping
[alts]
subjectAltName = @alts
DNS=server.example

[alts]
openssl -v
openssl req -new -sha256 -key ee-key.pem -config /dev/fd/63

-config /dev/fd/63 => /home/lostspeed/openssl/openssl-3.2.0_debian/test/certs/my_openssl_linux_log.txt

string_mask=utf8only
[req]
prompt = no
distinguished_name = dn
[dn]
CN = server.example
openssl x509 -req -sha256 -out ee-timestampsign-CABforum-serverauth.pem -extfile /dev/fd/63 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 2 -days 36525

-extfile /dev/fd/63 => /home/lostspeed/openssl/openssl-3.2.0_debian/test/certs/my_openssl_linux_log.txt

subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid, issuer
basicConstraints = CA:false
keyUsage = critical,digitalSignature
extendedKeyUsage = critical,timeStamping,serverAuth
[alts]
subjectAltName = @alts
DNS=server.example

[alts]
openssl -v
openssl req -new -sha256 -key ee-key.pem -config /dev/fd/63

-config /dev/fd/63 => /home/lostspeed/openssl/openssl-3.2.0_debian/test/certs/my_openssl_linux_log.txt

string_mask=utf8only
[req]
prompt = no
distinguished_name = dn
[dn]
CN = server.example
openssl x509 -req -sha256 -out ee-timestampsign-CABforum-anyextkeyusage.pem -extfile /dev/fd/63 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 2 -days 36525

-extfile /dev/fd/63 => /home/lostspeed/openssl/openssl-3.2.0_debian/test/certs/my_openssl_linux_log.txt

subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid, issuer
basicConstraints = CA:false
keyUsage = critical,digitalSignature
extendedKeyUsage = critical,timeStamping,2.5.29.37.0
[alts]
subjectAltName = @alts
DNS=server.example

[alts]
openssl -v
openssl req -new -sha256 -key ee-key.pem -config /dev/fd/63

-config /dev/fd/63 => /home/lostspeed/openssl/openssl-3.2.0_debian/test/certs/my_openssl_linux_log.txt

string_mask=utf8only
[req]
prompt = no
distinguished_name = dn
[dn]
CN = server.example
openssl x509 -req -sha256 -out ee-timestampsign-CABforum-crlsign.pem -extfile /dev/fd/63 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 2 -days 36525

-extfile /dev/fd/63 => /home/lostspeed/openssl/openssl-3.2.0_debian/test/certs/my_openssl_linux_log.txt

subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid, issuer
basicConstraints = CA:false
keyUsage = critical,digitalSignature,cRLSign
extendedKeyUsage = critical,timeStamping
[alts]
subjectAltName = @alts
DNS=server.example

[alts]
openssl -v
openssl req -new -sha256 -key ee-key.pem -config /dev/fd/63

-config /dev/fd/63 => /home/lostspeed/openssl/openssl-3.2.0_debian/test/certs/my_openssl_linux_log.txt

string_mask=utf8only
[req]
prompt = no
distinguished_name = dn
[dn]
CN = server.example
openssl x509 -req -sha256 -out ee-timestampsign-CABforum-keycertsign.pem -extfile /dev/fd/63 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 2 -days 36525

-extfile /dev/fd/63 => /home/lostspeed/openssl/openssl-3.2.0_debian/test/certs/my_openssl_linux_log.txt

subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid, issuer
basicConstraints = CA:false
keyUsage = critical,digitalSignature,keyCertSign
extendedKeyUsage = critical,timeStamping
[alts]
subjectAltName = @alts
DNS=server.example

[alts]
openssl -v
openssl req -new -sha256 -key ee-key.pem -config /dev/fd/63

-config /dev/fd/63 => /home/lostspeed/openssl/openssl-3.2.0_debian/test/certs/my_openssl_linux_log.txt

string_mask=utf8only
[req]
prompt = no
distinguished_name = dn
[dn]
CN = server.example
openssl x509 -req -sha256 -out ee-timestampsign-rfc3161.pem -extfile /dev/fd/63 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 2 -days 36525

-extfile /dev/fd/63 => /home/lostspeed/openssl/openssl-3.2.0_debian/test/certs/my_openssl_linux_log.txt

subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid, issuer
basicConstraints = CA:false

extendedKeyUsage = critical,timeStamping
[alts]
subjectAltName = @alts
DNS=server.example

[alts]
openssl -v
openssl req -new -sha256 -key ee-key.pem -config /dev/fd/63

-config /dev/fd/63 => /home/lostspeed/openssl/openssl-3.2.0_debian/test/certs/my_openssl_linux_log.txt

string_mask=utf8only
[req]
prompt = no
distinguished_name = dn
[dn]
CN = server.example
openssl x509 -req -sha256 -out ee-timestampsign-rfc3161-noncritxku.pem -extfile /dev/fd/63 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 2 -days 36525

-extfile /dev/fd/63 => /home/lostspeed/openssl/openssl-3.2.0_debian/test/certs/my_openssl_linux_log.txt

subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid, issuer
basicConstraints = CA:false

extendedKeyUsage = timeStamping
[alts]
subjectAltName = @alts
DNS=server.example

[alts]
openssl -v
openssl req -new -sha256 -key ee-key.pem -config /dev/fd/63

-config /dev/fd/63 => /home/lostspeed/openssl/openssl-3.2.0_debian/test/certs/my_openssl_linux_log.txt

string_mask=utf8only
[req]
prompt = no
distinguished_name = dn
[dn]
CN = server.example
openssl x509 -req -sha256 -out ee-timestampsign-rfc3161-digsig.pem -extfile /dev/fd/63 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 2 -days 36525

-extfile /dev/fd/63 => /home/lostspeed/openssl/openssl-3.2.0_debian/test/certs/my_openssl_linux_log.txt

subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid, issuer
basicConstraints = CA:false
keyUsage = digitalSignature
extendedKeyUsage = critical,timeStamping
[alts]
subjectAltName = @alts
DNS=server.example

[alts]文章来源地址https://www.toymoban.com/news/detail-824791.html

END

到了这里,关于openssl3.2/test/certs - 033 - time stamping certificates的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • openssl3.2/test/certs - 025 - client intermediate ca: cca-cert

    openssl3.2 - 官方demo学习 - test - certs // file my_openssl_linux_log_doc_025.txt // note openssl3.2/test/certs - 025 - client intermediate ca: cca-cert // -------------------------------------------------------------------------------- // 官方脚本 // -------------------------------------------------------------------------------- // openssl3.2/tes

    2024年01月24日
    浏览(42)
  • openssl3.2/test/certs - 027 - server intermediate ca: sca-cert

    openssl3.2 - 官方demo学习 - test - certs // file my_openssl_linux_log_doc_027.txt // note openssl3.2/test/certs - 027 - server intermediate ca: sca-cert // -------------------------------------------------------------------------------- // 官方脚本 // -------------------------------------------------------------------------------- // openssl3.2/tes

    2024年01月25日
    浏览(42)
  • openssl3.2/test/certs - 004 - cross root and root cross cert

    索引贴 openssl3.2 - 官方demo学习 - test - certs // file my_openssl_linux_log_doc_004.txt // openssl3.2/test/certs - 004 - cross root and root cross cert // -------------------------------------------------------------------------------- // 官方脚本原始内容 // -------------------------------------------------------------------------------- //

    2024年01月24日
    浏览(45)
  • openssl3.2/test/certs - 044 - 8192-bit leaf key

    openssl3.2 - 官方demo学习 - test - certs

    2024年01月25日
    浏览(36)
  • openssl3.2/test/certs - 042 - 3072-bit leaf key

    openssl3.2 - 官方demo学习 - test - certs

    2024年01月24日
    浏览(40)
  • openssl3.2/test/certs - 006 - trust variants: +anyEKU -anyEKU

    openssl3.2 - 官方demo学习 - test - certs // file my_openssl_win_log_doc_006.txt // openssl3.2/test/certs - 006 - trust variants: +anyEKU -anyEKU // 官方直接给的openssl命令行, 可以在win下直接实验. // 从字面意思看, 是调整做好的证书的功能(是否支持扩展密钥的用法) openssl x509 -in root-cert.pem -trustout -addtrust

    2024年01月23日
    浏览(33)
  • openssl3.2/test/certs - 018 - trust variants: +anyEKU, -anyEKU

    openssl3.2 - 官方demo学习 - test - certs

    2024年01月24日
    浏览(41)
  • openssl3.2 - 官方demo学习 - test - certs - 001 - Primary root: root-cert

    实验前置条件为 openssl3.2 - linux脚本(.sh)调用openssl命令行参数的简单确认方法 做官方第2个实验时, 才发现, 自己记录的管道文件没有考虑-extfile后面带的管道. 重新修正了openssl的入口日志记录实现, 现在ok了. 命令行 - 原始 openssl genpkey -algorithm rsa -pkeyopt rsa_keygen_bits:2048 -out root-

    2024年01月22日
    浏览(33)
  • openssl3.2/test/certs - 011 - primary client-EKU root: croot-cert

    openssl3.2 - 官方demo学习 - test - certs file my_openssl_linux_log_doc_011.txt note openssl3.2/test/certs - 011 - primary client-EKU root: croot-cert // -------------------------------------------------------------------------------- // 官方脚本 // -------------------------------------------------------------------------------- // openssl3.2/test/c

    2024年01月23日
    浏览(34)
  • openssl3.2/test/certs - 002 - root cert variants: CA:false, key2, DN2, expired

    索引贴 openssl3.2 - 官方demo学习 - test - certs –官方原始脚本 openssl3.2/test/certs - 002 - root cert variants: CA:false, key2, DN2, expired root cert variants: CA:false, key2, DN2, expired ./mkcert.sh genss “Root CA” root-key root-nonca –得到的原始命令行 openssl genpkey -algorithm rsa -pkeyopt rsa_keygen_bits:2048 -out root-key.

    2024年01月23日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包