1.https证书

1.1htpps概述

基于http协议,传输的时候进行加密.
如果不使用https,数据传输都是明文的.

应用场景:
   目前大部分的业务都是使用https加密.
   企业想使用http 2.0 基于https.
   
 部署https加密的流程
    域名 *.jd.com www.jd.com
    根据域名申请https证书(私钥与公钥(ca证书)),自己创建
    进行配置web/lb.

image-20240620103636187.png

1.2https 加密流程(单台)

申请的https证书的域名与网站域名一致,才能正常使用.
否则用户访问会有警告与提示


##基础配置参考
server {
 listen 443 ssl; 
  #ssl on ; 1.15.0 以后被废弃了. 
 server_name ssl.oldboylinux.cn; 
 root /app/code/ssl; 
  #ssl key 
 ssl_certificate     
/etc/nginx/ssl_keys/ssl.oldboylinux.cn.pem;
 ssl_certificate_key 
/etc/nginx/ssl_keys/ssl.oldboylinux.cn.key;
 location / {
 index index.html;
 }}
 

1.3http跳转https

##基础配置参考
server {
 listen 80;
 server_name ssl.oldboylinux.cn; 
 return 301   
https://ssl.oldboylinux.cn$request_uri;
  #rewrite ^(.*)$ https:Վˌssl.oldboylinux.cn$1 
permanent
}
server {
 listen 443 ssl; 
  #ssl on ; 1.15.0 以后被废弃了. 
 server_name ssl.oldboylinux.cn; 
 root /app/code/ssl; 
  #ssl key 
 ssl_certificate     
/etc/nginx/ssl_keys/ssl.oldboylinux.cn.pem;
 ssl_certificate_key 
/etc/nginx/ssl_keys/ssl.oldboylinux.cn.key;
 location / {
   index index.html;
 }

2.命令行创建https证书

#创建私钥
openssl genrsa -idea -out server.key 2048
#根据私钥创建 证书
openssl req -days 36500 -x509 -sha256 -nodes -newkey 
rsa:2048 -keyout server.key -out server.crt

3.网站集群https配置

image-20240620104104722.png

image-20240620104115704.png

php如果需要https(lb)—htpp(web)
对php动态部分进行配置.
fastcgi_param HTTPS on; #前面部分的请求是https
server {
listen 80;
server_name blog.oldboylinux.cn;
root /app/code/blog;
error_log /var/log/nginx/blog-error.log notice; 
access_log /var/log/nginx/blog-access.log main;
location / {
 index index.php;
}
location ~* \.(html|js|css|jpg|png|jpeg)$ {
 expires max;
}
location ~ \.php$ {
 fastcgi_pass  127.0.0.1:9000;
 fastcgi_index index.php; 
 fastcgi_param HTTPS on; 
 fastcgi_param SCRIPT_FILENAME   
$document_root$fastcgi_script_name;
 include   fastcgi_params;
 }}
 

4.优化

server {
       listen              443 ssl;
       keepalive_timeout   70;
       ssl_protocols       TLSv1 TLSv1.1 TLSv1.2; #
指定ssl加密协议的版本
       ssl_ciphers         AES128-SHA:AES256-
SHA:RC4-SHA:DES-CBC3-SHA:RC4-
MD5:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5; #加密算法. 
需要排除算法
        #排除null空算法, md5算法
       ssl_certificate     
/usr/local/nginx/conf/cert.pem;
       ssl_certificate_key 
/usr/local/nginx/conf/cert.key;
        #设置https 会话缓存
       ssl_session_cache   shared:SSL:10m;
        #超时时间 10分钟
       ssl_session_timeout 10m;
       。。。。。。
       }