Un comando para que su sitio web admita https

Un comando para que su sitio web admita https

 

Introducción

Escribí un pequeño programa recientemente, pero se debe acceder a la interfaz del pequeño programa a través de https, así que lo reenvié con nginx. Pensando que el motor de búsqueda de Google aumentaría el peso del sitio web https, simplemente transformé mi sitio web para admitir tanto http como https. Ver efecto

acceso http

Un comando para que su sitio web admita https

 


acceso al formulario https

Un comando para que su sitio web admita https

 


Usé LET'S ENCRYPT para generar el certificado, esta debería ser la herramienta más usada y es muy conveniente.

Me refiero directamente al documento oficial sobre el uso de nginx en CentOS 7 para que el sitio web admita
https://certbot.eff.org/lets-encrypt/centosrhel7-nginx

1. Descarga

sudo yum install certbot python2-certbot-nginx

2. Ejecute el comando.
Modifique el archivo nginx.conf en el directorio / usr / local / nginx / conf por defecto

certbot --nginx -d www.erlie.cc

Si no está en este directorio, puede usar el parámetro --nginx-server-root para especificar

certbot --nginx --nginx-server-root=/yourpath -d www.erlie.cc	

Si desea generar para varios nombres de dominio

-d 域名1 -d 域名2

O especifique una cada vez y ejecute varias veces
. Habrá dos opciones 1 y 2 durante el proceso

Si elige 1, puede acceder a través de HTTP y HTTPS.
Si elige 2, todas las solicitudes que lleguen a través de HTTP serán redirigidas 301 a HTTPS

Puede encontrar varios problemas ambientales en el camino y Google puede resolverlos.

Dije que encontré un pozo. No elegí el módulo SSL al compilar, así que tuve que volver a compilar. Después de compilar, reinicié con el siguiente comando

nginx -s reload

Como resultado, el acceso https ha sido problemático y luego me di cuenta. El nginx regenerado en el directorio sbin debe reiniciarse para que surta efecto.
nginx -s reload es solo un archivo de configuración de implementación en caliente, el archivo binario nginx no tiene efecto

En este punto se puede acceder a http://www.erlie.cc y https://www.erlie.cc

configuración de nginx.conf

server {
	listen       80;
	server_name  www.erlie.cc;	#charset koi8-r;	access_log  /usr/local/nginx/logs/access.log combined;
	location = / {		root   /product/new-blog-fe/dist/view;		index  index.html;	}	location ~ .*\.html$ {		root   /product/new-blog-fe/dist/view;		index  index.html;	}	location / {		proxy_pass  http://127.0.0.1:8080/;
   }      location ~ .*\.(gif|jpeg|png|bmp|swf|flv|ico)$ {		root   /product/new-blog-fe;		if (-f $request_filename) {
		  expires 1d;
		  break;
	   }   }   location ~ .*\.(js|css)?$ {		root   /product/new-blog-fe;		if (-f $request_filename) {
		  expires 1d;
		  break;
	   }   }	#error_page  404              /404.html;
	# redirect server error pages to the static page /50x.html
	#	error_page   500 502 503 504  /50x.html;
	location = /50x.html {
		root   html;	}	listen 443 ssl; # managed by Certbot
	ssl_certificate /etc/letsencrypt/live/www.erlie.cc/fullchain.pem; # managed by Certbot	ssl_certificate_key /etc/letsencrypt/live/www.erlie.cc/privkey.pem; # managed by Certbot	include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot	ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot}123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657

Las últimas 5 líneas las genera automáticamente el comando anterior, que es muy conveniente y no necesita ser configurado por usted mismo.
Puede ver que reenvié todas las solicitudes para la interfaz al http://127.0.0.1:8080/ local, debería haber adivinado que este es un proyecto Spring Boot

¿Cómo escribir el front-end?

Para permitir que el front-end llame a la interfaz http cuando el visitante accede a ella a través de http. Llame a la interfaz https cuando acceda a través de https, hago esto

nb.js

var conf = {
    serverHot : window.location.origin};var _nb = {    request: function (param) {
        var _this = this;        $.ajax({            type       : param.method || 'get',
            url        : param.url || '',
            dataType   : param.type || 'json',
            data       : param.data || '',
            xhrFields  : {withCredentials: true},
            crossDomain: true,
            contentType: param.contentType || 'application/x-www-form-urlencoded;charset=UTF-8',
            success: function (res) {
            	typeof param.success === 'function' && param.success(res.data, res.msg);
            },            error: function (err) {
            	typeof param.error === 'function' && param.error(err.statusText);
            }        })    },    // 获取服务器地址    getServerUrl : function(path) {
        return conf.serverHot + path;
    }}module.exports = _nb;123456789101112131415161718192021222324252627282930

window.location.origin para obtener una dirección de solicitud como https://www.erlie.cc, puede probarlo usted mismo en el navegador

Un comando para que su sitio web admita https

 


user-service.js solicita interfaces relacionadas con el usuario

var _nb = require('util/nb.js');
var _user = {    // 用户登录    login : function(userInfo, resolve, reject){
        _nb.request({            url     : _nb.getServerUrl('/user/login'),
            data    : userInfo,            method  : 'POST',
            success : resolve,            error   : reject
        });    }}module.exports = _user;123456789101112131415

userInfo es el parámetro de solicitud
resolver es la función que se ejecuta después de que la llamada es exitosa
rechazar es la función que se ejecuta después de que la llamada falla

Renovación Automática

El certificado de Let's Encrypt caduca en 90 días, por lo que debe configurar un script de actualización automático. La forma más sencilla es usar crontab. Use el comando crontab -e para agregar la siguiente entrada de trabajo de sincronización (actualización obligatoria cada mes)

0 0 * * * certbot renew

Supongo que te gusta

Origin blog.csdn.net/python8989/article/details/108502728
Recomendado
Clasificación