HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面。
SSL证书
SSL证书通过在客户端浏览器和Web服务器之间建立一条SSL安全通道(Secure socket layer(SSL)安全协议是由Netscape Communication公司设计开发。该安全协议主要用来提供对用户和服务器的认证;对传送的数据进行加密和隐藏;确保数据在传送中不被改变,即数据的完整性,现已成为该领域中全球化的标准。
由于SSL技术已建立到所有主要的浏览器和WEB服务器程序中,因此,仅需安装服务器证书就可以激活该功能了),即通过它可以激活SSL协议,实现数据信息在客户端和服务器之间的加密传输,可以防止数据信息的泄露,保证了双方传递信息的安全性,而且用户可以通过服务器证书验证他所访问的网站是否是真实可靠。
CA域名证书
可以在各大云服务商进行购买,此处不过多赘述。
这类型主要用于公网环境,使用浏览器访问的网站使用。
自签名证书
此类证书比较适用于局域网、开发测试。因为此类证书不被浏览器信任,如需要公网环境使用,需要客户端安装公钥并添加信任,该流程对普通用户不友好,所以这类证书不建议用于公网环境。
创建SSL证书
openssl genrsa -out ca.key 1024
openssl req -new -key ca.key -out ca.csr
openssl x509 -req -in ca.csr -signkey ca.key -out ca.crt
# 生成key
openssl genrsa -out server.key 1024
openssl rsa -in server.key -pubout -out server.pem
openssl req -new -key server.key -out server.csr
# 生成crt
openssl x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crt
openssl x509 -in server.crt -out server.cer -outform der
配置nginx
nginx新增配置如下:
server {
# 端口号自定义
listen 443;
server_name localhost;
# 开始ssl
ssl on;
# 证书地址
ssl_certificate /opt/crt/server.crt;
ssl_certificate_key /opt/crt/server.key;
location / {
# 服务地址
proxy_pass http://172.25.5.15:8080;
}
}