pig-ui https证书配置和使用教程

csdn文档:https://blog.csdn.net/if_deram/article/details/118443403
须知: centos部署参考https://www.yuque.com/pig4cloud/pig/ggffp7
此文档只提供https=》前端和nginx部署

必须拥有域名,并且域名备案解析到服务器,教程以阿里云为主,腾讯云等云服务配置大同小异

1. 登录阿里云

点击链接登录阿里云 https://account.aliyun.com/login/login.htm ,输入用户名密码登录

2. 购买ssl免费证书

2.1 搜索ssl

首先搜索框中输入ssl,点击搜索或回车

注:如若域名和服务器不在同一运营商,须在云服务器所在运营商进行购买配置ssl证书

https 部署前端项目 - 图2

2.2 购买证书

弹出SSL证书相关内容,点击立即购买证书->选购SSL证书

https 部署前端项目 - 图3

2.3 立即购买

选择商品属性并点击立即购买

https 部署前端项目 - 图4

3. ssl证书申请

3.1 进入SSL管理控制台

进去证书管理控制台,可以回到首页搜索ssl,选择管理控制台

image-20210630174945686.png

3.2 进入免费证书

点击左侧SSL证书,右侧的免费证书

注意:免费证书可以为你域名提供https的服务,但是不能为你的2级域名,3级域名提供,只限于你的1级域名使用

https 部署前端项目 - 图6

3.3 填写信息

点击创建证书并且填写认证申请信息

注:申请通过大概几分钟就可以

  • 点击申请
    https 部署前端项目 - 图7
  • 填写信息
    注: 域名验证方式:如果您绑定的域名在本账号下,使用自动验证。推荐方式和不推荐方式任选其一

    推荐选择:域名验证方式 ->手工DNS验证 CSR生成方式 ->系统生成

    • (推荐)填写基本信息:域名验证方式 ->自动DNS验证(填写域名自动更新),CSR生成方式 ->系统生成

填写完成点击下一步跳转 3.4 提交审核
https 部署前端项目 - 图8

  • (不推荐)填写基本信息:域名验证方式 ->自动DNS验证, CSR生成方式 ->手动填写

填写完成点击下一步跳转 3.4 提交审核

注意:手动填写CSR的证书不支持部署到阿里云产品。 在制作CSR文件时请务必保存好您的私钥文件。私钥和SSL证书一一对应,一旦丢失了私钥,您的数字证书也将不可使用

手动生成证书的密钥和CSR文件,window下默认提供Keytool工具生成CSR文件
创建一个文件夹,在该文件夹下执行如下命令

  1. 1. 执行以下命令,生成keystore证书文件
  1. keytool -genkey -alias [$Alias] -keyalg RSA -keysize 2048 -storepass [123456] -keystore [$Keytool_Path]

说明 -alias: 证书别名,[$Alias]可自定义 -keyalg: 使用的RSA算法,不可以修改 -keysize: 密钥长度为2048bit,不可以修改 -storepass: 密钥库口令,自定义 -keystore: 密钥库文件名 -Keytool_Path: 证书文件保存路径,默认当前路径

  1. 2. 根据系统返回的提示,输入生成CSR文件所需的信息。以下是关于提示的说明
  1. 您的名字与姓氏是什么?(first and last name):申请证书的域名。
  2. 您的组织单位名称是什么?(name of your organizational unit):部门名称。
  3. 您的组织名称是什么?(name of your organization):公司名称。
  4. 您所在的城市或区域名称是什么?(name of your City or Locality):城市名称。
  5. 您所在的城市或区域名称是什么?(name of your State or Province):州名或省份名称。
  6. 该单位的双字母国家/地区代码是什么?(two-letter country code for this unit):两位字符的ISO国家代码。
  1. 3. 确认输入内容是否正确,输入Y表示正确

https 部署前端项目 - 图9

  1. 4. 执行以下命令,生成CSR文件
  1. keytool -certreq -sigalg SHA256withRSA -alias [$Alias] -storepass [123456] -keystore [$Keytool_Path] -file [$Keytool_CSR]

https 部署前端项目 - 图10

说明: -sigalg: 摘要算法 [$Keytool_CSR]:CSR文件存放路径 -alias、-storepass、-keystore:与keystore证书文件一致

  1. 5. 打开CSR文件,复制进`CSR文件内容`,点击确定

如果生成keystore证书填写域名和当前认证域名不一致,或修改加密位数或算法报如下错误,解决方案:检查域名是否一直,输入文件是否按照要求


https 部署前端项目 - 图11

3.4 提交审核

域名验证,提交审核

https 部署前端项目 - 图12

4. 证书下载

等待状态变为以签发 ,你就可以点击下载,只需要下载nginx证书

下载内容为: 系统生成=》证书信息和密钥,自动填写=》只有证书信息,密钥需要根据文件自己生成

4.1 点击下载
https 部署前端项目 - 图13

4.2 下载nginx

https 部署前端项目 - 图14

4.3 开放安全组

开放安全组,默认没有开始443安全组,需开启

  1. 点击**实例** ,在选择你的服务器

https 部署前端项目 - 图15

  1. 点击**安全组** ,在点击**内网入方向全部规则** 查看是否开启443端口,如果没有开启,请选择**安全组** 列表**加入安全组****配置规则**

https 部署前端项目 - 图16
https 部署前端项目 - 图17
image-20210702094036002.png

5. 拷贝证书文件

进入服务器nginx下conf目录创建cert并把ssl证书 .pem 和 私钥 .key拷贝到这个目录

注:文件可以放在服务器任意目录下

  1. #当前我nginx安装在/usr/local目录下,一般软件都建议安装在此目录下
  2. mkdir /usr/local/nginx/conf/cert -p

6. (可选)nginx部署ssl模块

注: 通过tar包安装nginx需部署ssl模块

6.1 查看nginx是否有ssl模块,如果没有则安装

  • (可选)nginx全局配置下执行-V命令查看是否用ssl模块
  • (可选)在nginx安装目录下的sbin目录 下查看
  1. #进入nginx安装目录下的sbin
  2. cd /usr/local/nginx/sbin
  3. #执行./nginx -V命令
  4. ./nginx -V
  5. #以下是返回值
  6. # configure arguments: --prefix=/usr/local/nginx --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --with-http_gzip_static_module --http-client-body-temp-path=/var/temp/nginx/client --http-proxy-temp-path=/var/temp/nginx/proxy --http-fastcgi-temp-path=/var/temp/nginx/fastcgi --http-uwsgi-temp-path=/var/temp/nginx/uwsgi --http-scgi-temp-path=/var/temp/nginx/scgi
  • (可选)进入到nginx解压的文件夹objs文件夹下验证是否拥有ssl,演示解压文件在/home/software目录下
  1. #进入software目录
  2. cd /home/software
  3. #进入nginx解压目录下objs目录,nginx模块都会存放在objs文件夹下
  4. cd nginx/objs
  5. #进入ngx_modules.c文件搜索ssl验证是否存在
  6. vi ngx_modules.c
  7. #输入/ssl查找
  8. /ssl
  • 未查找到,返回到nginx解压目录,新增ssl模块
  1. #进入到nginx解压目录
  2. cd cd /home/software/nginx
  3. #执行命令,--prefix为你nginx安装目录
  4. ./configure \
  5. --prefix=/usr/local/nginx \
  6. --pid-path=/var/run/nginx/nginx.pid \
  7. --lock-path=/var/lock/nginx.lock \
  8. --error-log-path=/var/log/nginx/error.log \
  9. --http-log-path=/var/log/nginx/access.log \
  10. --with-http_gzip_static_module \
  11. --http-client-body-temp-path=/var/temp/nginx/client \
  12. --http-proxy-temp-path=/var/temp/nginx/proxy \
  13. --http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
  14. --http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
  15. --http-scgi-temp-path=/var/temp/nginx/scgi \
  16. --with-http_ssl_module
  • 执行编译并且安装
  1. make
  2. make install

6.2 检测是否安装成功(2种方案可选)

  1. 通过查看解压nginx/objs目录下ngx_modules.c 是否安装ssl模块

    1. #进入software目录
    2. cd /home/software
    3. #进入objs目录,nginx模块都会存放在objs文件夹下
    4. cd nginx/objs
    5. #进入ngx_modules.c文件搜索ssl验证是否存在
    6. vi ngx_modules.c
    7. #输入/ssl查找模块
    8. /ssl
  2. 通过nginx安装目录sbin下执行./nginx -V 查看

    1. #进入安装目录sbin文件夹下
    2. cd /usr/local/nginx/sbin
    3. #执行./nginx -V命令
    4. ./nginx -V
    5. #以下是返回值,已经拥有with-http_ssl_module模块
    6. # configure arguments: --prefix=/usr/local/nginx --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --with-http_gzip_static_module --http-client-body-temp-path=/var/temp/nginx/client --http-proxy-temp-path=/var/temp/nginx/proxy --http-fastcgi-temp-path=/var/temp/nginx/fastcgi --http-uwsgi-temp-path=/var/temp/nginx/uwsgi --http-scgi-temp-path=/var/temp/nginx/scgi --with-http_ssl_module

7. 前端部署

以下部署方式任选其一

7.1 通过tar安装nginx方式(可选)

  1. #进入nginx安装目录下conf文件
  2. cd /usr/local/nginx/conf/
  3. #修改nginx配置文件
  4. vi nginx.conf
  5. user root;
  6. worker_processes auto;
  7. events {
  8. worker_connections 1024;
  9. }
  10. http {
  11. server {
  12. #如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on
  13. listen 443 ssl;
  14. #listen 443;
  15. # 开启ssl
  16. #ssl on;
  17. #替换你自己的域名
  18. server_name www.domian.com domian.com;
  19. # 配置ssl证书,替换你自己下载的nginx证书,可以是相对路径或绝对路径
  20. ssl_certificate cert/5887362_www.yourpem.com.pem;
  21. # 配置证书秘钥,系统生成=》替换你自己下载的nginx密钥,手动填写=》需要你通过openssl生成密钥上传,可以是相对路径或绝对路径
  22. ssl_certificate_key cert/5887362_www.yourkey.com.key;
  23. # ssl会话cache
  24. ssl_session_cache shared:SSL:1m;
  25. # ssl会话超时时间
  26. ssl_session_timeout 5m;
  27. # 配置加密套件,写法遵循 openssl 标准
  28. ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  29. ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
  30. #表示使用的TLS协议的类型
  31. ssl_prefer_server_ciphers on;
  32. root /data/pig-ui;
  33. index index.html;
  34. location / {
  35. root /data/pig-ui;
  36. index index.html;
  37. }
  38. # 注意维护新增微服务,gateway 路由前缀
  39. location ~* ^/(code|auth|admin|gen) {
  40. proxy_pass http://127.0.0.1:9999;
  41. proxy_set_header Host $host;
  42. proxy_set_header X-Forwarded-Proto $scheme;
  43. add_header Cache-Control no-store;
  44. proxy_connect_timeout 15s;
  45. proxy_send_timeout 15s;
  46. proxy_read_timeout 15s;
  47. proxy_set_header X-Real-IP $remote_addr;
  48. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  49. proxy_set_header X-Forwarded-Proto http;
  50. }
  51. server{
  52. listen 80;
  53. #换成你的域名
  54. server_name www.domian.com domian.com;
  55. #重定向到https
  56. return 301 https://$server_name$request_uri;
  57. }
  58. }
  59. }
  60. #启动nginx,进入nginx安装目录下的sbin
  61. cd /usr/local/nginx/sbin
  62. #启动nginx
  63. ./nginx

7.2 通过yum命令安装nginx方式(可选)

  1. mkdir -p /data/pig-ui && cp -r dist/* /data/pig-ui
  2. cd /etc/nginx/conf.d && rm -f default.conf
  3. vim pigx.conf
  4. server {
  5. #如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on
  6. listen 443 ssl;
  7. #listen 443;
  8. # 开启ssl
  9. #ssl on;
  10. #替换你自己的域名
  11. server_name www.domian.com domian.com;
  12. # 配置ssl证书,替换你自己下载的nginx证书,可以是相对路径或绝对路径
  13. ssl_certificate cert/5887362_www.yourpem.com.pem;
  14. # 配置证书秘钥,系统生成=》替换你自己下载的nginx密钥,手动填写=》需要你通过openssl生成密钥上传,
  15. ssl_certificate_key cert/5887362_www.yourkey.com.key;
  16. # ssl会话cache
  17. ssl_session_cache shared:SSL:1m;
  18. # ssl会话超时时间
  19. ssl_session_timeout 5m;
  20. # 配置加密套件,写法遵循 openssl 标准
  21. ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  22. ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
  23. #表示使用的TLS协议的类型
  24. ssl_prefer_server_ciphers on;
  25. root /data/pig-ui;
  26. index index.html;
  27. location / {
  28. root /data/pig-ui;
  29. index index.html;
  30. }
  31. # 注意维护新增微服务,gateway 路由前缀
  32. location ~* ^/(code|auth|admin|gen) {
  33. proxy_pass http://127.0.0.1:9999;
  34. proxy_set_header Host $host;
  35. proxy_set_header X-Forwarded-Proto $scheme;
  36. add_header Cache-Control no-store;
  37. proxy_connect_timeout 15s;
  38. proxy_send_timeout 15s;
  39. proxy_read_timeout 15s;
  40. proxy_set_header X-Real-IP $remote_addr;
  41. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  42. proxy_set_header X-Forwarded-Proto http;
  43. }
  44. }
  45. server {
  46. #监听80端口
  47. listen 80;
  48. #替换自己的域名
  49. server_name www.domain.com domain.com;
  50. #开启https,http失效需重定向到https
  51. return 301 https://$server_name$request_uri;
  52. }
  53. #启动nginx
  54. nginx

8. 验证是否成功

  1. #浏览器输入地址验证domain换成你的ip地址
  2. https://www.domian.com

可参考文档

阿里云申请配置https参考步骤

https://help.aliyun.com/video_detail/212905.html?spm=a2c4g.11186623.2.2.20fa1a26hDPFQM

华为云申请免费ssl步骤

https://support.huaweicloud.com/qs-ccm/ccm_07_0012.html

腾讯云申请免费ssl步骤

  1. 申请
    https://cloud.tencent.com/document/product/400/6814
  2. 验证域名
    https://support.huaweicloud.com/ccm_faq/ccm_01_0268.html#ccm_01_0268__fig1141255248

本文作者

文档作者: https://gitee.com/xiaozhang_xiaozhang

❤ 问题咨询

手势点击蓝字求关注简约风动态引导关注__2022-09-07+23_18_38.gif