How to generate a TLS certificate with SXG extensions, install tools to generate SXG files, and configure nginx to serve SXG files.

Signed HTTP Exchanges (SXG) es una nueva tecnología web que facilita a los usuarios diferenciar a los creadores de contentsEl contenido puede ser muy difícil de definir con precisión. Es una definición que se refiere a las declaraciones contenidas en un documento o publicación de cualquier tipo y puede incluir las tecnologías de la información y la comunicación. Esto cubre todos los tipos de medios como imágenes y texto. A parte de esto, en el campo de la optimización de motores de búsqueda, los términos duplicar contenido, contenido único, plus de los distribuidores de contenido. Esta guía le muestra cómo configurar SXG.

Compatibilidad con varios browsersConcepto de Navegadores¿Qué son los Navegadores?Los Navegadores son herramientas informáticas que utilizamos para, normalmente, navegar por Internet y visitar cualquier página web, al mismo tiempo de para hacer otras tareas como ver documentos, observar vídeos o reproducir contenido multimedia de cualquier tipo. Son un tipo de software sencillamente usual y bastante utilizado hoy en día.Insistimos en que es algo que se utiliza con mucha frecuencia, puesto que moverse por Internet plus

Several Chromium-based browsers support SXG, including Google Chrome, Samsung Internet, and Microsoft Edge. See the consensus and standardization section of
HTTP exchanges signed by origin
for the most up-to-date information.

Prerequisites

To implement SXG on your website, you must:

  • Tenga control sobre su domainUn dominio es una sección de Internet con direcciones que comparten un sufijo común o están bajo el control de una organización o individuo en particular. Está organizado jerárquicamente. Tanto los objetos físicos como los virtuales pueden ser direccionados con el nombre de dominio. Estos objetos pueden ser webs, ordenadores en red o servicios, como impresoras, faxes o servidores de correo. Cada objeto está referenciado por una dirección IP única, plus, incluidas las entradas de DNSConcepto de DNS¿Qué son las DNS (Domain Name Server)?Al hablar de DNS, nos referimos a las iniciales Domain Name System (Sistema de Nombres de Dominio). Consiste en una tecnología que recurre a las bases de datos para detectar la dirección IP a la que pertenece cualquier dominio que un usuario quiera desear. Es decir, toma la URL y la “traduce” para ofrecer como resultado su dirección exacta, su IP.Para quien plus.
  • Get certificates. SXG requires the issuance of a dedicated certificate. In particular, you cannot reuse your TLS key or certificate.
  • Tenga un serverLos servidores son ordenadores centrales y potentes dentro del campo de la tecnología de la información que procesan y proporcionan software y archivos en una red. Desde el punto de vista de un cliente, varios ordenadores en una red pueden ponerse en contacto con el servidor central para conseguir la información solicitada. En la arquitectura cliente-servidor, el servidor puede ser un software que proporciona un servicio y se ejecuta en plus HTTPEl HTTP (Hyper Text Transfer Protocol) es un protocolo que se usa para transmitir datos en redes. HTTP es un estándar técnico generalmente aceptado que establece cómo un cliente web se comunica con un servidor para que los datos solicitados por el cliente puedan ser cargados y mostrados. Información general Junto con el URL y el HTML, HTTP es uno de los conceptos más importantes de Internet (www). Fue desarrollado plus que pueda generar y servir SXG a través de HTTPSHTTPS (protocolo de Transferencia de Hiper-Texto) es un protocolo que permite determinar una conexión segura entre el servidor y el cliente, que no puede ser interceptada por personas no autorizadas. En resumidas cuentas, es la versión segura de el http (Hyper Text Transfer Protocol) Cómo funciona Una conexión HTTP estándar en Internet puede ser fácilmente secuestrada por partes no autorizadas. El propósito de una conexión HTTPS es evitar esto: encriptar plus.

Assumptions

This guide assumes that you:

  • Have an OpenSSL 1.1.1 environment. This guide was written with Ubuntu 18.04 LTS on amd64 ISA.
  • Have the ability to run sudo to install executables.
  • Use nginx as an HTTP server.
  • They are using DigiCert to generate certificates that include SXG related extensions, because it currently appears to be the only vendor that supports these extensions.

Also, the example commands in this article assume that your domain is website.test, so you will need to replace website.test with his royal domain.

Step 1: get your certificate for SXG

To generate SXG, you need a TLS certificate with the CanSignHttpExchanges extension, as well as a particular key type. DigiCert provides certificates with this extension. You need a CSR file for issuing a certificate, so generate it with the following commands:

openssl ecparam -genkey -name prime256v1 -out mySxg.key
openssl req -new -key mySxg.key -nodes -out mySxg.csr -subj "/O=Test/C=US/CN=website.test"

You will get a CSR file that looks like this:

-----BEGIN CERTIFICATE REQUEST-----
MIHuMIGVAgEAMDMxDTALBgNVBAoMBFRlc3QxCzAJBgNVBAYTAlVTMRUwEwYDVQQD
DAx3ZWJzaXRlLnRlc3QwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS7IVaeMvid
S5UO7BspzSe5eqT5Qk6X6dCggUiV/vyqQaFDjA/ALyTofgXpbCaksorPaDhdA+f9
APdHWkTbbdv1oAAwCgYIKoZIzj0EAwIDSAAwRQIhAIb7n7Kcc6Y6pU3vFr8SDNkB
kEadlVKNA24SVZ/hn3fjAiAS2tWXhYdJX6xjf2+DL/smB36MKbXg7VWy0K1tWmFi
Sg==
-----END CERTIFICATE REQUEST-----

Make sure of that:

  • The validity period does not exceed 90 days.
  • the Include the CanSignHttpExchanges extension in the certificate The check box is enabled, found under Additional Certificate Options.
sxg-check-6467115

the Include the CanSignHttpExchanges extension in the certificate box.

If your certificate does not meet these conditions, browsers and distributors will reject your SXG for security reasons. This guide assumes that the file name of the certificate you obtained from DigiCert is mySxg.pem.

Step 2: install libsxg

The SXG format is complex and difficult to generate without using tools. You can use one of the following options to generate SXG:

This guide uses libsxg.

Option 1: install libsxg from a Debian package

You can install the package in the usual Debian way, as long as OpenSSL (libssl-dev) matches the version.

sudo apt install -y libssl-dev
wget https://github.com/google/libsxg/releases/download/v0.2/libsxg0_0.2-1_amd64.deb
wget https://github.com/google/libsxg/releases/download/v0.2/libsxg-dev_0.2-1_amd64.deb
sudo dpkg -i libsxg0_0.2-1_amd64.deb
sudo dpkg -i libsxg-dev_0.2-1_amd64.deb

Option 2: build libsxg by hand

If you are not using an environment compatible with .deb files, you can build libsxg yourself. As a precondition, you must install git, cmake, openssland gcc.

git clone https://github.com/google/libsxg
mkdir libsxg/build
CD libsxg/build
cmake .. -DRUN_TEST=false -DCMAKE_BUILD_TYPE=Release
make
sudo make install

Step 3: install nginx plug

the nginx The plugin allows you to generate SXG dynamically instead of generating them statically before serving.

Option 1: install the plugin from a Debian package

the SXG module for nginx is distributed on GitHub. On Debian-based systems, you can install it as a binary package:

sudo apt install -y nginx
wget https://github.com/google/nginx-sxg-module/releases/download/v0.1/libnginx-mod-http-sxg-filter_1.15.9-0ubuntu1.1_amd64.deb
sudo dpkg -i libnginx-mod-http-sxg-filter_1.15.9-0ubuntu1.1_amd64.deb

Option 2: compile the plugin manually

Building the nginx module requires the nginx source codeEl código fuente es un programa de PC o página web que se convierte en un lenguaje que es leído por una máquina y se recoge en imagen y función. El código fuente es una parte importante del SEO porque determina la correcta ejecución de una página web. La optimización del código fuente es por ende parte del SEO técnico. Código fuente para páginas web Mientras que el código fuente plus. Puede obtener el tarball y construirlo junto con el módulo dinámico SXG usando los siguientes comandos:

git clone https://github.com/google/nginx-sxg-module
wget https://nginx.org/download/nginx-1.17.5.tar.gz
tar xvf nginx-1.17.5.tar.gz
CD nginx-1.17.5
./configure --prefix=/opt/nginx --add-dynamic-module=../nginx-sxg-module --without-http_rewrite_module --with-http_ssl_module
make
sudo make install

the nginx The configuration has great flexibility. Install on pc nginx anywhere on your system, then specify a respective path of module / config / log / pidfile. This guide assumes that you install it on / opt / nginx.

Step 4: configure the nginx plugin to work with SXG

Option 1: configure an installation from Debian nginx module

Follow these instructions if you used Step 3, Option 1 above.

La entrega de contenido SXG requiere HTTPS. Puede obtener un certificado SSLLa encriptación SSL (Secure Socket Layer) proporciona una conexión segura entre el cliente y el servidor. Consiste en un protocolo de Internet que permite encriptar datos sensibles (como información de pago, datos de tarjetas de crédito) y hacerlos ilegibles a terceros. Al mismo tiempo, un certificado confirma que el servidor es fiable. En este momento, además se le llama TLS (Transport Layer Security). Relevancia SSL es un método de cifrado plus / TLS de DigiCert, Let’s Encrypt y otros servicios. Tenga en cuenta que NO PUEDE utilizar un certificado SXG para SSL o viceversa, por lo tanto, necesitará dos certificados. El archivo de configuración en /etc/nginx/nginx.conf it should look similar to the following, assuming you put the SSL certificate / key pair in / path / to / ssl / and the SXG key / certificate pair in / path / to / sxg /:

user www-data;
include /etc/nginx/modules-enabled/*.conf;

events {
worker_connections 768;
}

http {
include mimeMIME son las siglas de Multi-Purpose Internet Mail Extensions. En su versión original, definió ciertos tipos de datos de archivos adjuntos de email para que estos archivos pudieran leerse y ejecutarse cuando no estuvieran en formato ASCII. Las especificaciones MIME incluyen varios formatos multimedia como archivos de imagen, vídeo, texto y numerosos formatos de aplicación. Información general MIME ha demostrado ser sobre todo útil en el tratamiento de tipos de plus.types;
default_type application/octet-stream;
add_header X-Content-Type-Options nosniff;

server {
listen 443 ssl;
ssl_certificate /path/to/ssl/fullchain.pem;
ssl_certificate_key /path/to/ssl/privkey.pem;
server_name website.test;

sxg on;
sxg_certificate /path/to/sxg/mySxg.pem;
sxg_certificate_key /path/to/sxg/mySxg.key;
sxg_cert_url https://website.test/certs/cert.cbor;
sxg_validity_url https://website.test/validity/resource.msg;
sxg_cert_path /certs/cert.cbor;

root /var/www/htmlHTML (Hypertext Markup Language) se usa para estructurar el contenido de texto de un documento web. No sólo se marca el contenido, sino además la meta-información que describe este contenido. Las páginas HTML se almacenan normalmente en el directorio raíz del servidor. Cómo se creó En la era digital, a los usuarios les resulta difícil hallar su camino en las webs y hacer un seguimiento de las estructuras de las plus;
}
}

  • sxg_cert_url It is essential for browsers to load SXG correctly because it locates the certificate chain. The certificate chain contains OCSP stapling and certificate information in cbor format. Note that you do not need to cert.cbor file from the same source. You can serve it through any CDN or other static file service services as long as it supports HTTPS.
  • sxg_validitiy_url information related to the SXG signature header is intended to serve. If a page has not been modified since the last SXG, it is technically not necessary to download the full SXG file. Therefore, updating the signature header information alone is expected to reduce network traffic. But the details are not yet implemented.

Start nginx And you're ready to serve SXG!

sudo systemctl start nginx.service
curl -H"Accept: application/signed-exchange;v=b3" https://website.test/ > indexUn index o índice es generalmente un directorio en un orden específico que se usa con fines de orientación. En términos de motores de búsqueda, un índice es la lista de páginas web que es emitido por el motor de búsqueda en respuesta a una solicitud de búsqueda del usuario. Información general La lista que se muestra posteriormente de introducir una solicitud de búsqueda específica se llama SERPs (Search Engine plus.html.sxg
cat index.html.sxg
sxg1-b3...https://website.test/...(omit)

Option 2: configure an embedded font nginx module

Follow these instructions if you used Step 3, Option 2 above.

Configure your nginx system installed under / opt / nginx to look similar to the following example:

load_module "/opt/nginx/modules/ngx_http_sxg_filter_module.so";

events {
worker_connections 768;
}

http {
include mime.types;
default_type application/octet-stream;
add_header X-Content-Type-Options nosniff;

server {
listen 443 ssl;
ssl_certificate /path/to/ssl/fullchain.pem;
ssl_certificate_key /path/to/ssl/privkey.pem;
server_name example.com;

sxg on;
sxg_certificate /path/to/sxg/mySxg.pem;
sxg_certificate_key /path/to/sxg/mySxg.key;
sxg_cert_url https://website.test/certs/cert.cbor;
sxg_validity_url https://website.test/validity/resource.msg;
sxg_cert_path /certs/cert.cbor;

root /opt/nginx/html;
}
}

Then start nginx. Now you can get your SXG!

CD /opt/nginx/sbin
sudo ./nginx
curl -H "Accept: application/signed-exchange;v=b3" https://website.test/ > index.html.sxg
less index.html.sxg
sxg1-b3...https://website.test/...(omit)

Step 5: deliver your application backend

In the examples above, nginx sirve archivos estáticos en el root directoryUn directorio raíz (en inglés root directory), es el directorio del nivel más alto de una jerarquía. Además se conoce como documento raíz. Desde esta raíz todos los demás directorios se ramifican. En el caso de las webs, los archivos más necesarios, como las páginas HTML, se encuentran en el directorio raíz del servidor desde el que se solicitará su visualización mediante del navegador. Los directorios raíz además se usan plus, pero puede usar directivas ascendentes para sus aplicaciones para hacer SXG para backends de aplicaciones web arbitrarias (como Ruby on Rails, Django o Express) siempre que su nginx works as a front end HTTP (S) server.

upstream appConcepto de APP¿Qué es una APP?Una App es todo aquel programa que se ejecuta desde una interfaz teléfono celular, es decir, desde un móvil o una tablet. Consiste en la herramienta principal para cualquier usuario que tenga un teléfono teléfono celular, de todo el software que se mueve en tiendas digitales como Google Play Store o la App Store y que tanto se adentra en cualquier terminal moderno.Es un concepto plus {
server 127.0.0.1:8080;
}

server {
location / {
proxy_pass http://app;
}
}

Step 6: test

Use the dump-signedexchange tool
para probar que los SXG que se sirven sean correctos, asegúrese de que no se notifiquen errores y verifique que los headersConcepto de Encabezados¿Qué son los Encabezados?Los Encabezados, además conocidos como headers en inglés, son una parte fundamental del diseño de cualquier web, dado que consiste en la parte principal que se ve de esta al acceder, la parte de arriba de cualquier página. El lugar más visible y al que todos los usuarios que visitan un lugar de Internet acceden cuando entran en él, pudiendo tener así una imagen rápida plus y el cuerpo sean los esperados.

go get -u github.com/WICG/webpackage/go/signedexchange/cmd/dump-signedexchange
export PATH=$PATH:~/go/bin
dump-signedexchange -verify -uri https://website.test/ | less

Post comments

Chromium engineers working at SXG are eager to hear your feedback at [email protected]. You can also join the specification discussionor Report a bug to the team. Your feedback will be of great help in the standardization process and will also help address implementation issues. Thanks!