导航菜单

  • 0.api
  • 0.Async
  • 0.module
  • 1.ES2015
  • 2.Promise
  • 3.Node
  • 4.NodeInstall
  • 5.REPL
  • 6.NodeCore
  • 7.module&NPM
  • 8.Encoding
  • 9.Buffer
  • 10.fs
  • 11.Stream-1
  • 11.Stream-2
  • 11.Stream-3
  • 11.Stream-4
  • 12-Network-2
  • 12.NetWork-3
  • 12.Network-1
  • 13.tcp
  • 14.http-1
  • 14.http-2
  • 15.compress
  • 16.crypto
  • 17.process
  • 18.yargs
  • 19.cache
  • 20.action
  • 21.https
  • 22.cookie
  • 23.session
  • 24.express-1
  • 24.express-2
  • 24.express-3
  • 24.express-4
  • 25.koa-1
  • 26.webpack-1-basic
  • 26.webpack-2-optimize
  • 26.webpack-3-file
  • 26.webpack-4.tapable
  • 26.webpack-5-AST
  • 26.webpack-6-sources
  • 26.webpack-7-loader
  • 26.webpack-8-plugin
  • 26.webpack-9-hand
  • 26.webpack-10-prepare
  • 28.redux
  • 28.redux-jwt-back
  • 28.redux-jwt-front
  • 29.mongodb-1
  • 29.mongodb-2
  • 29.mongodb-3
  • 29.mongodb-4
  • 29.mongodb-5
  • 29.mongodb-6
  • 30.cms-1-mysql
  • 30.cms-2-mysql
  • 30.cms-3-mysql
  • 30.cms-4-nunjucks
  • 30.cms-5-mock
  • 30.cms-6-egg
  • 30.cms-7-api
  • 30.cms-8-roadhog
  • 30.cms-9-yaml
  • 30.cms-10-umi
  • 30.cms-12-dva
  • 30.cms-13-dva-ant
  • 30.cms-14-front
  • 30.cms-15-deploy
  • 31.dva
  • 31.cms-13-dva-antdesign
  • 33.redis
  • 34.unittest
  • 35.jwt
  • 36.websocket-1
  • 36.websocket-2
  • 38.chat-api-1
  • 38.chat-api-2
  • 38.chat-3
  • 38.chat-api-3
  • 38.chat
  • 38.chat2
  • 38.chat2
  • 39.crawl-0
  • 39.crawl-1
  • 39.crawl-2
  • 40.deploy
  • 41.safe
  • 42.test
  • 43.nginx
  • 44.enzyme
  • 45.docker
  • 46.elastic
  • 47.oauth
  • 48.wxpay
  • index
  • 52.UML
  • 53.design
  • index
  • 54.linux
  • 57.ts
  • 56.react-ssr
  • 58.ts_react
  • 59.ketang
  • 59.ketang2
  • 61.1.devops-linux
  • 61.2.devops-vi
  • 61.3.devops-user
  • 61.4.devops-auth
  • 61.5.devops-shell
  • 61.6.devops-install
  • 61.7.devops-system
  • 61.8.devops-service
  • 61.9.devops-network
  • 61.10.devops-nginx
  • 61.11.devops-docker
  • 61.12.devops-jekins
  • 61.13.devops-groovy
  • 61.14.devops-php
  • 61.15.devops-java
  • 61.16.devops-node
  • 61.17.devops-k8s
  • 62.1.react-basic
  • 62.2.react-state
  • 62.3.react-high
  • 62.4.react-optimize
  • 62.5.react-hooks
  • 62.6.react-immutable
  • 62.7.react-mobx
  • 62.8.react-source
  • 63.1.redux
  • 63.2.redux-middleware
  • 63.3.redux-hooks
  • 63.4.redux-saga
  • 63.5.redux-saga-hand
  • 64.1.router
  • 64.2.router-connected
  • 65.1.typescript
  • 65.2.typescript
  • 65.3.typescript
  • 65.4.antd
  • 65.4.definition
  • 66-1.vue-base
  • 66-2.vue-component
  • 66-3.vue-cli3.0
  • 66-4.$message组件
  • 66-5.Form组件
  • 66-6.tree
  • 66-7.vue-router-apply
  • 66-8.axios-apply
  • 66-9.vuex-apply
  • 66-10.jwt-vue
  • 66-11.vue-ssr
  • 66-12.nuxt-apply
  • 66-13.pwa
  • 66-14.vue单元测试
  • 66-15.权限校验
  • 67-1-network
  • 68-2-wireshark
  • 7.npm2
  • 69-hooks
  • 70-deploy
  • 71-hmr
  • 72.deploy
  • 73.import
  • 74.mobile
  • 75.webpack-1.文件分析
  • 75.webpack-2.loader
  • 75.webpack-3.源码流程
  • 75.webpack-4.tapable
  • 75.webpack-5.prepare
  • 75.webpack-6.resolve
  • 75.webpack-7.loader
  • 75.webpack-8.module
  • 75.webpack-9.chunk
  • 75.webpack-10.asset
  • 75.webpack-11.实现
  • 76.react_optimize
  • 77.ts_ketang_back
  • 77.ts_ketang_front
  • 78.vue-domdiff
  • 79.grammar
  • 80.tree
  • 81.axios
  • 82.1.react
  • 82.2.react-high
  • 82.3.react-router
  • 82.4.redux
  • 82.5.redux_middleware
  • 82.6.connected
  • 82.7.saga
  • 82.8.dva
  • 82.8.dva-source
  • 82.9.roadhog
  • 82.10.umi
  • 82.11.antdesign
  • 82.12.ketang-front
  • 82.12.ketang-back
  • 83.upload
  • 84.graphql
  • 85.antpro
  • 86.1.uml
  • 86.2.design
  • 87.postcss
  • 88.react16-1
  • 89.nextjs
  • 90.react-test
  • 91.react-ts
  • 92.rbac
  • 93.tsnode
  • 94.1.JavaScript
  • 94.2.JavaScript
  • 94.3.MODULE
  • 94.4.EventLoop
  • 94.5.文件上传
  • 94.6.https
  • 94.7. nginx
  • 95.1. react
  • 95.2.react
  • 96.1.react16
  • 96.2.fiber
  • 96.3.fiber
  • 97.serverless
  • 98.websocket
  • 100.1.react-basic
  • 101.1.monitor
  • 101.2.monitor
  • 102.java
  • 103.1.webpack-usage
  • 103.2.webpack-bundle
  • 103.3.webpack-ast
  • 103.4.webpack-flow
  • 103.5.webpack-loader
  • 103.6.webpack-tapable
  • 103.7.webpack-plugin
  • 103.8.webpack-optimize1
  • 103.9.webpack-optimize2
  • 103.10.webpack-hand
  • 103.11.webpack-hmr
  • 103.11.webpack5
  • 103.13.splitChunks
  • 103.14.webpack-sourcemap
  • 103.15.webpack-compiler1
  • 103.15.webpack-compiler2
  • 103.16.rollup.1
  • 103.16.rollup.2
  • 103.16.rollup.3
  • 103.16.vite.basic
  • 103.16.vite.source
  • 103.16.vite.plugin
  • 103.16.vite.1
  • 103.16.vite.2
  • 103.17.polyfill
  • 104.1.binary
  • 104.2.binary
  • 105.skeleton
  • 106.1.react
  • 106.2.react_hooks
  • 106.3.react_router
  • 106.4.redux
  • 106.5.redux_middleware
  • 106.6.connected-react-router
  • 106.6.redux-first-history
  • 106.7.redux-saga
  • 106.8.dva
  • 106.9.umi
  • 106.10.ketang
  • 106.11.antdesign
  • 106.12.antpro
  • 106.13.router-6
  • 106.14.ssr
  • 106.15.nextjs
  • 106.16.1.cms
  • 106.16.2.cms
  • 106.16.3.cms
  • 106.16.4.cms
  • 106.16.mobx
  • 106.17.fomily
  • 107.fiber
  • 108.http
  • 109.1.webpack_usage
  • 109.2.webpack_source
  • 109.3.dll
  • 110.nest.js
  • 111.xstate
  • 112.Form
  • 113.redux-saga
  • 114.react+typescript
  • 115.immer
  • 116.pro5
  • 117.css-loader
  • 118.1.umi-core
  • 119.2.module-federation
  • 119.1.module-federation
  • 120.create-react-app
  • 121.react-scripts
  • 122.react-optimize
  • 123.jsx-runtime
  • 124.next.js
  • 125.1.linux
  • 125.2.linux-vi
  • 125.3.linux-user
  • 125.4.linux-auth
  • 125.5.linux-shell
  • 125.6.linux-install
  • 125.7.linux-system
  • 125.8.linux-service
  • 125.9.linux-network
  • 125.10.nginx
  • 125.11.docker
  • 125.12.ci
  • 125.13.k8s
  • 125.14.k8s
  • 125.15.k8s
  • 125.16.k8s
  • 126.11.react-1
  • 126.12.react-2
  • 126.12.react-3
  • 126.12.react-4
  • 126.12.react-5
  • 126.12.react-6
  • 126.12.react-7
  • 126.12.react-8
  • 127.frontend
  • 128.rollup
  • 129.px2rem-loader
  • 130.health
  • 131.hooks
  • 132.keepalive
  • 133.vue-cli
  • 134.react18
  • 134.2.react18
  • 134.3.react18
  • 135.function
  • 136.toolkit
  • 137.lerna
  • 138.create-vite
  • 139.cli
  • 140.antd
  • 141.react-dnd
  • 142.1.link
  • 143.1.gulp
  • 143.2.stream
  • 143.3.gulp
  • 144.1.closure
  • 144.2.v8
  • 144.3.gc
  • 145.react-router-v6
  • 146.browser
  • 147.lighthouse
  • 148.1.basic
  • 148.2.basic
  • 148.3.basic
  • 148.4.basic
  • 148.5.basic
  • 149.1.vite
  • 149.2.vite
  • 149.3.vite
  • 149.4.vite
  • 150.react-window
  • 151.react-query
  • 152.useRequest
  • 153.transition
  • 154.emotion
  • 155.1.formily
  • 155.2.formily
  • 155.3.formily
  • 155.3.1.mobx.usage
  • 155.3.2.mobx.source
  • 156.vue-loader
  • 103.11.mf
  • 157.1.react18
  • 158.umi4
  • 159.rxjs
  • 159.rxjs2
  • 160.bff
  • 161.zustand
  • 162.vscode
  • 163.emp
  • 164.cors
  • 1.HTTP
    • 1.1 HTTP服务器
    • 1.2 HTTP三大风险
  • 2. HTTPS
  • 3. 加密算法
    • 3.1 对称加密 AES
    • 3.2 非对称加密
    • 3.3 哈希算法
    • 3.4 签名
    • 3.5 数字证书
    • 3.6 密钥交换
    • 3.7 ECC
  • 4. 加密过程
    • 4.1 ClientHello
    • 4.2 ServerHello
    • 4.3 Certificate
    • 4.4 ServerKeyExchange
    • 4.5 Server Hello Done
    • 4.6 ClientKeyExchange
    • 4.7 ChangeCipherSpec
    • 4.8 EncryptedHandshakeMessage
    • 4.9 New Session Ticket
  • 5.openssl
    • 5.1 查看版本
    • 5.2 摘要算法
    • 5.3 对称加密
    • 5.5 RSA非对称加密
      • 5.5.1 RSA
        • 5.5.1.1 RSA生成公私钥
        • 5.5.1.2 RSA加解密
        • 5.5.1.3 数字签名
      • 5.5.2 ECDSA
        • 5.5.2.1 生成公私钥
        • 5.5.2.2 数字签名
  • 6.证书体系(PKI)
    • 6.1. 生成自签的根证书
    • 6.2.服务器证书申请
  • 7.nginx
    • 7.1 安装
    • 7.2 布署证书
  • 8. tls安全
    • 8.1 证书吊销
    • 8.1 证书链
    • 8.2 多域名证书与泛域名证书
    • 8.2 安全的优化

1.HTTP #

  • HTTP 协议(HyperText Transfer Protocol,超文本传输协议)是客户端浏览器或其他程序与Web服务器之间的应用层通信协议

1.1 HTTP服务器 #

tcp.port == 7788
let http = require('http');
http.createServer(function (req, res) {
    let buffer = Buffer.from('hello');
    console.log(buffer);
    res.end(buffer);
}).listen(7788, () => console.log('listening 7788'));

1.2 HTTP三大风险 #

  • (1)窃听风险:黑客可以获知通信内容
  • (2)篡改风险:黑客可以修改通信内容
  • (3)冒充风险:黑客可以冒充他人身份参与通信

2. HTTPS #

  • HTTP = HTTP+TLS/SSL
风险 对策 方法
信息窃听 信息加密 对称加密 AES
密钥传递 密钥协商 非对称加密(RSA和ECC)
信息篡改 完整性校验 散列算法(MD5和SHA)
身份冒充 CA权威机构 散列算法(MD5和SHA)+RSA签名

3. 加密算法 #

3.1 对称加密 AES #

  • 加密和解密使用同一个密钥

3.2 非对称加密 #

3.3 哈希算法 #

  • 哈希函数的作用是给一个任意长度的数据生成出一个固定长度的数据
    • 安全性 可以从给定的数据X计算出哈希值Y,但不能从哈希值Y计算机数据X
    • 独一无二 不同的数据一定会产出不同的哈希值
    • 长度固定 不管输入多大的数据,输出长度都是固定的

5.hashkey

3.4 签名 #

  • 数字签名的基本原理是用私钥去签名,而用公钥去验证签名

verify3

3.5 数字证书 #

  • 数字证书是一个由可信的第三方发出的,用来证明所有人身份以及所有人拥有某个公钥的电子文件

certification3

3.6 密钥交换 #

  • Diffie-Hellman算法是一种密钥交换协议,它可以让双方在不泄漏密钥的情况下协商出一个密钥来

3.7 ECC #

  • 椭圆曲线加密算法(ECC) 是基于椭圆曲线数学的一种公钥加密的算法
let basic = 3;//共享basic
let a = 5;
let basicA = basic * a;//15
let b = 7;
let basicB = basic * b;//21

console.log(a * basicB);//105
console.log(b * basicA);//105

4. 加密过程 #

  • firefox: https://47.105.191.39 ip.addr ==47.105.191.39 and tls

4.1 ClientHello #

  • 在一次新的握手流程中,客户端先发送ClientHello
    • Version 协议版本
    • Random 包含32个字节的随机数 28随机数字节+4字节时间戳,随机数是为了保证每一次连接者是独立无二的
    • Cipher Suites 客户端支持的所有密码套件
    • Extensions 扩展的额外数据

1.clienthello.png

4.2 ServerHello #

  • 将服务器选择的连接参数发回给客户端,消息结构和ClientHello类似 ,每个字段只包含一个选项

serverres

serverhello

4.3 Certificate #

  • Certificate消息发送X.509证书

4.certificate.png

4.4 ServerKeyExchange #

  • ServerKeyExchange的目的在于发送交换密钥的参数

5.serverkeyexchange.png

4.5 Server Hello Done #

  • ClientKeyExchange消息携带客户端为密钥交换的所有信息

6.serverhellodone.png

4.6 ClientKeyExchange #

  • ClientKeyExchange消息携带客户端为密钥交换的所有信息

clientkeyexchange

4.7 ChangeCipherSpec #

  • ChangeCipherSpec表示客户端已经得到了连接参数的足够信息,已生成加密密钥,并切换到了加密模式

ChangeCipherSpec

4.8 EncryptedHandshakeMessage #

  • 这个报文的目的就是告诉对端自己在整个握手过程中收到了什么数据,发送了什么数据,来保证中间没人篡改报文
  • 其次这个报文作用就是确认秘钥的正确性。因为Encrypted handshake message是使用对称秘钥进行加密的第一个报文,如果这个报文加解密校验成功,那么就说明对称秘钥是正确的
  • 计算方法就将之前所有的握手数据(包括接受和发送)计算哈希运算,然后就是使用协商好的对称密钥进行加密
加密(SHA(客户端随机数+服务器随机数))

EncryptedHandshakeMessage

4.9 New Session Ticket #

  • SSL 中的 session 会跟 HTTP 的 session 类似,都是用来保存客户端和服务端之间交互的一些记录
  • 如果服务端允许使用 Session ID,客户端的 Client Hello 带上 Session ID,服务端复用 Session ID 后,会直接略过协商加密密钥的过程,直接发出一个 Change Cipher Spec 报文,然后就是加密的握手信息报文
  • 在服务器发送New Session Ticket消息
    • Type 类型
    • Version 版本
    • Length长度
    • Session Ticket Lifetime Hint 表示Ticket的剩余有效时间
    • Session Ticket 会话标识

NewSessionTicket

11.NewSessionTicket

5.openssl #

  • linux中的openssl 是SSL/TLS协议和多种加密算法的开源实现
  • openssl包括libcrypto实现算法、libssl 实现TLS/SSL协议,libssl是基于会话的,实现了身份认证 ,数据加密, 会话完整性的一个TLS/SSL的库。

5.1 查看版本 #

openssl version -a   

5.2 摘要算法 #

openssl dgst -help
  • file... files to digest (default is stdin) 生成摘要的文件
  • -out outfile Output to filename rather than stdout 输出文件
  • -sign val Sign digest using private key 使用私钥签名
  • -verify val Verify a signature using public key 使用公钥验证签名
  • -signature infile File with signature to verify 验证的签名的文件
  • -hex Print as hex dump 以16进制打印
  • -hmac val Create hashed MAC with key 创建hashed过的消息摘要
echo 123 > msg.txt
openssl dgst -md5  msg.txt
openssl dgst -sha1  msg.txt
openssl dgst -sha256  msg.txt

5.3 对称加密 #

openssl enc -help
  • -in infile Input file 输入要加密的文件
  • -out outfile Output file 输出加密后的文件
  • -e Encrypt 加密
  • -d Decrypt 解密
  • -a Base64 encode/decode, depending on encryption flag Base64编码和解码
  • -pass val Passphrase source 指定密码
  • -k val Passphrase 指定密码
openssl  enc -e -aes128 -a -k 123456789  -in msg.txt  -out enc_msg.txt
openssl  enc -d -aes128 -a -k 123456789  -in enc_msg.txt  -out dec_msg.txt

openssl  enc -e -aes128 -a -pass pass:123456  -in msg.txt  -out enc_msg.txt -P
openssl  enc -d -aes128 -a -pass pass:123456  -in enc_msg.txt  -out dec_msg.txt

5.5 RSA非对称加密 #

5.5.1 RSA #

5.5.1.1 RSA生成公私钥 #
openssl genrsa -help
  • -aes256 是使用aes256算法加密这个私钥
  • -passout 指定加密的密钥
  • -out output the key to file 指明输出文件
  • -in 指定输入文件
  • -pubout 输出公钥信息; 根据私钥的信息得出公钥
//生成加密的私钥
openssl genrsa -aes256 -passout pass:123456 -out private.key 2048
//生成不加密的私钥
openssl genrsa  -out private.key 1024
//生成公钥
openssl rsa -pubout -in private.key  -out  public.key
5.5.1.2 RSA加解密 #
openssl rsautl -help
  • -in infile Input file 输入文件(待加密或待解密的文件)
  • -out outfile Output file 输出文件 加密解密后的文件
  • -inkey val Input key 输入加密的公钥
  • -encrypt Encrypt with public key 使用公钥加密
  • -decrypt Decrypt with private key 使用私钥解密
  • -pubin Input is an RSA public 表明输入的是公钥(默认是私钥)
  • -sign Sign with private key 表明使用私钥签名
  • -verify Verify with public key 表明使用公钥验证签名
  • -hexdump Hex dump output 以十六进制形式输出
//公钥加密
openssl rsautl -encrypt -inkey public.key  -pubin  -in msg.txt  -out enc.msg.txt 
//私钥解密
openssl rsautl -decrypt -inkey private.key -in enc.msg.txt   -out  dec.msg.txt 
5.5.1.3 数字签名 #
//摘要后使用RSA私钥签名,摘要算法sha256
openssl dgst -sign private.key -sha256 -out  sign.msg.txt  msg.txt
//使用RSA公钥验证签名
openssl dgst -verify  public.key -sha256 -signature sign.msg.txt  msg.txt

5.5.2 ECDSA #

5.5.2.1 生成公私钥 #
//生成ecdsa私钥
openssl ecparam -genkey  -name secp256k1 -out ec.private.key
//提取 ecdsa 公钥
openssl ec -in ec.private.key -pubout -out ec.public.key
5.5.2.2 数字签名 #
//使用ECDSA私钥进行签名 (sha256) 
openssl  dgst -sign ec.private.key  -sha256 -out sign.msg  msg.txt
//使用ECDSA公钥进行签名验证
openssl dgst -verify ec.public.key -sha256 -signature sign.msg  msg.txt

6.证书体系(PKI) #

  • 为了检查公钥不是服务器就需要引入权威第三方
  • 数字证书就是权威第三方发布的并包括
    • Issuer (证书的发布机构):哪个权威第三方发布的证书
    • Valid from,Valid to(证书的有效期) 过了有效期限,证书就会作废
    • Public key(公钥) 权威第三方给申请者配发的公钥
    • Subject(主题): 证书所有者,一般是公司名称、机构名称、公司网站的网址等
    • Signature algorithm(签名所使用的算法): 使用哪个算法加密了指纹,指纹的加密结果就是数字签名
    • Thumbprint, Thumbprint algorithm (指纹以及指纹算法) 这是个加密后的结果,是用来确保证书完整性的,保证证书不被篡改

6.1. 生成自签的根证书 #

  • -new 新的签名请求
  • -x509 输出x509格式的证书
  • -key 私钥
  • -out 输出文件
  • -days 证书有效期天数
  • -subject 请求主体
//1.生成CA私钥
openssl genrsa -out ca.private.key  2048
//2.根据CA私钥生成根证书
openssl req -new -x509 -key ca.private.key  -out ca.crt  -days 365  -subj /C=CN/ST=BeiJing/L=BeiJing/O=ca/OU=ca/CN=www.ca.com/emailAddress=ca@qq.com

6.2.服务器证书申请 #

//1.生成服务器私钥
openssl genrsa -out server.private.key 2048
//2.创建证书签名申请CSR(certificate signing request)并且发送给CA
openssl req -new -key server.private.key -out server.csr -subj  /C=CN/ST=BeiJing/L=BeiJing/O=47.105.67.214/OU=47.105.67.214/CN=47.105.67.214/emailAddress=47.105.67.214@qq.com
//3.签发证书
openssl x509 -req -days 365  -CA ca.crt -CAkey ca.private.key -CAcreateserial  -in  server.csr  -out server.crt

7.nginx #

7.1 安装 #

yum -y install gcc gcc-c++ pcre-devel zlib-devel

wget https://nginx.org/download/nginx-1.12.2.tar.gz
wget https://www.openssl.org/source/openssl-1.1.0h.tar.gz
tar zxf nginx-1.12.2.tar.gz
tar zxf openssl-1.1.0h
cd nginx-1.12.2

groupadd nginx
// -M 不要自动建立用户的登入目录 -s 不能登录的shell
useradd nginx  -M -s /sbin/nologin -g nginx

mkdir -p /usr/nginx
mkdir -p /usr/nginx/logs  
mkdir -p /usr/nginx/cache

./configure  --prefix=/usr/nginx   --with-http_ssl_module --with-openssl=/root/openssl-1.1.0h        --with-http_ssl_module --user=nginx --group=nginx

make 
make install

export PATH=/usr/nginx/sbin:$PATH
nginx -t
nginx -V
nginx
netstat -ntlp

7.2 布署证书 #

  • 配置文件/usr/nginx
  • 重启 nginx -s reload
    server {
        listen       443 ssl;
        server_name  localhost;

+       ssl_certificate      /root/server.crt;
+       ssl_certificate_key  /root/server.private.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
            root   html;
            index  index.html index.htm;
        }
    }

8. tls安全 #

8.1 证书吊销 #

  • 证书吊销列表分发点 (CRL Distribution Point ,简称 CDP) 是含在数字证书中的一个可以共各种应用软件自动下载的最新的 CRL 的位置信息,一般 CA 每隔一定时间 ( 几天或几个月 ) 才发布新的吊销列表
  • OCSP(Online Certificate Status Protocol)证书状态在线查询协议,是IETF颁布的用于实时查询数字证书在某一时间是否有效的标准。

8.1 证书链 #

  • 一个证书链就是能溯源到一个可信根证书的有序证书列表
  • 使用证书链的原因
    • 保证根证书安全
    • 交叉证书 用已有的根证书签署新的根证书
    • 划分二级CA
    • 委派 签发给一个组织或者公司一个二级CA,但限制用于签署其自用的证书,只能签署他们自己所拥有的域名的证书。

8.2 多域名证书与泛域名证书 #

  • 建议给每个域名一个单独的证书
  • .xxxx.com或 .xxxx.org 就是泛域名

8.2 安全的优化 #

  • 使用服务器优先的更安全的密码套件
  • 密钥算法与加密强度
  • 注意保护私钥,定期更换
  • 选择可靠的CA权威机构
  • 前向安全保密

访问验证

请输入访问令牌

Token不正确,请重新输入