sexta-feira, 18 de agosto de 2023

Trocar Conceitos por Palavras (Raciocínio Metonímico)

   Tudo o que falamos e escrevemos são nossos pensamentos ou raciocínios, mesmo quando falamos ou escrevemos mentiras. Pelo quê uma pessoa fala ou escreve podemos saber se esta pessoa é burra ou não.

   Grosso modo, é o que está no dicionário. O significado é um signo explicado por outros signos, ou seja, é dizer o que é uma palavra através de outras palavras. Não entrarei de novo no “nome das coisas” de Aristóteles que, neste sentido, são os signos. E lembrando, um signo é algo que simboliza alguma coisa; toda palavra é um signo, mas nem todo signo é uma palavra. Uma imagem também é um signo, um cheiro é um signo, um gosto, etc; pois representa, simboliza uma coisa ou várias coisas ao mesmo tempo. Um mesmo signo pode ter vários simbolismos.

   Então, Conceito é aquela imagem mental abstrata, é o que está dentro da nossa cabeça. Repito, esta definição de conceito é para o entendimento deste texto, sabemos que existem outros significados e/ou definições do signo Conceito. Não estou aqui determinando que esta definição de Conceito seja absoluta, é somente para o entendimento deste texto; e também não estou inventando nada, esta definição aqui presente tem por base o dicionário e definições de outros autores.

   Lembrando também a diferença entre significado, sentidos e definição. Significado já vimos. Sentidos de um significado também já vimos, mas nunca é demais repetir: sentidos são significados um pouco mais específicos, os "sentidos" os quais podemos empregar uma determinada palavra são o que alguns autores como Saussure chamava de "significante" e Peirce de "interpretante". Por exemplo: “Aquela pessoa tem inteligência” e “Aquela pessoa trabalha em uma agência de inteligência”. O signo é o mesmo: Inteligência, porém, este signo foi empregado em dois sentidos diferentes. Pelo simples fato de eu dizer que “Aquela pessoa trabalha em uma agência de inteligência” não significa propriamente que estou dizendo que aquela pessoa é inteligente. Simples assim.

   A estrutura das línguas comprova isso e, no caso, da Língua Portuguesa é o que encontramos em qualquer dicionário. Temos sempre o primeiro significado mais próximo do signo (às vezes até numerado, 1, 2, 3, etc), o primeiro é o significado genérico (todo significado é genérico), os outros são os sentidos nos quais podemos empregar o signo. Não me estenderei nesta parte, pois já foi dito isso, mas posso acrescentar que de acordo com o sentido da palavra empregado na frase o referente (o que a coisa é) tem um entendimento um pouco diferente, mas não foge do significado genérico, como vimos anteriormente no exemplo do signo "inteligência".

   Definição é você delimitar a coisa, é você ser mais específico ao dizer o que uma coisa é. Coisa é “tudo o que existe ou possa existir, de natureza corpórea ou incorpórea.” Por exemplo: um lápis é uma coisa corpórea, liberdade é uma coisa incorpórea. Coisa, num sentido mais filosófico pode ser "tudo aquilo que há e tudo aquilo que existe". Tudo o que existe são os objetos corpóreos; tudo que há engloba objetos corpóreos e incorpóreos. Neste sentido, lápis há e existe; liberdade somente há. Uma coisa corpórea se auto-define, pois extraímos as informações dela; uma coisa incorpórea é subjetiva, pois não temos como extrai as informações físicas como quantidade (altura, largura, comprimento, etc), qualidade (cor), etc.

   Lápis: um objeto composto por um bastão de grafite envolto por uma camada de madeira que serve para rabiscar, escrever e desenhar no papel. Este é o significado do signo “lápis” e é genérico porque significa todos os lápis do mundo que tem um bastão de grafite e são envoltos por uma camada de madeira. Caso eu tomar um lápis em específico, por exemplo, um lápis com um bastão de grafite envolto por uma camada de madeira que serve para rabiscar, escrever e desenhar no papel e é pintado na cor verde, tem o formato sextavado e tem um tamanho de 20 centímetros, estarei dando a “definição” deste lápis em específico, estarei delimitando-o (estarei dizendo o que é esta coisa chamada lápis especificamente), pois tem outros lápis que tem um formato cilíndrico, são na cor preta, etc.

   E há o conceito do signo “lápis”, aquela imagem mental abstrata que se forma na sua mente ao perceber a coisa através dos cinco sentidos básicos: tato, olfato, paladar, visão e audição.

   No momento em que você expressa um conceito em palavras (signos) você está ou significando a coisa (com seus vários sentidos) ou definindo-a ou somente falando (ou escrevendo) sobre ela. Percebam, quando eu escrevi “através dos cinco sentidos básicos” e quando eu escrevi “com seus vários sentidos” empreguei o signo “sentidos” em duas formas (sentidos) diferentes e, a partir daí, o entendimento das duas expressões tornam-se diferentes. Na primeira expressão estou falando dos sentidos básicos do ser humano e na segunda expressão estou falando dos sentidos que o significado de um signo pode adotar de acordo com a circunstância. Simples assim e bastante óbvio.

   Muitas vezes não sabemos expressar um conceito em palavras, não sabemos dizer em palavras o que é tal coisa porque não sabemos o significado e seus vários sentidos e, a partir daí, não conseguimos saber o referente da coisa. Signo, significado (e seus vários sentidos) e o referente. O referente é o que a coisa é em si na realidade.

   Muitas vezes é trabalhoso (mas não difícil) significar e/ou definir um conceito em palavras. Existem conceitos objetivos e conceitos subjetivos. Conceitos objetivos, basicamente, partem dos objetos corpóreos, objetos que existem fisicamente no mundo. E conceitos subjetivos, basicamente, partem de objetos incorpóreos que não existem fisicamente, como no exemplo anterior: lápis e liberdade. Não existe um objeto físico chamado liberdade (qual é o tamanho da liberdade, qual é a cor), porém, sabemos o que é liberdade através do seu significado e da sua definição; o significado e a definição vêm do conceito através da observação da realidade.

   Então, resumindo, “conceito” é aquela imagem mental abstrata que está na nossa mente que vem da observação da realidade e quando externamos essa imagem em palavras torna-se ou um significado ou uma definição ou estamos somente falando (ou escrevendo) a respeito dessa coisa sem significa-la ou defini-la, grosso modo, estamos somente falando (ou escrevendo) a respeito dela sem dizer o que é esta coisa.

   Não entrarei aqui, de novo, nas partes que compõem o todo (ou nos particulares e gerais de Aristóteles), mas darei uma breve explanação com relação ao objeto do assunto: Conceito.

   Como vimos, um conceito é uma imagem mental abstrata e traduzimos os conceitos em palavras, pois é dessa forma que o ser humano se comunica basicamente, através da palavra falada e da palavra escrita.

   Um signo (que simboliza uma coisa) é um geral composto de vários particulares (ou um todo composto de várias partes). Por exemplo: Inteligência. Dentro do conceito Inteligência (expresso através do signo gramatical Inteligência) podemos encontrar várias partes através da observação da realidade. A saber: conhecimento, raciocínio, percepção, etc. São partes que compõem o todo chamado de Inteligência. Podemos decompor qualquer coisa em suas partes através da observação da realidade. Isso é, de certo modo, natural, faz parte do ser humano, nascemos assim, é assim que entendemos e compreendemos as coisas.

   O processo às vezes se dá partindo dos particulares (ou de um particular em específico) e vamos para o todo; e às vezes partimos do todo e vamos decompondo-o em partes, indo e voltando das partes para o todo e vice-versa. Por exemplo, ao consultar o dicionário em busca do significado de um signo (uma palavra neste caso) estamos partindo de uma parte que compõe o todo porque o significado é genérico e não explica especificamente o que é a coisa (o referente). A partir daí temos que raciocinar e investigar mais coisas (partes) para chegar ao entendimento do que é a coisa em si. É um processo natural do ser humano. Um sentido específico de um significado não nos dá um referente absoluto posto que temos de analisar as várias partes que compõem o todo.

   Continuando no exemplo do signo Inteligência (ou poderia tomar qualquer outro signo), mas vamos continuar neste. Inteligência: “faculdade de conhecer, compreender e aprender.” Este é o significado. Inteligência: “capacidade de compreender e resolver novos problemas e conflitos e de adaptar-se a novas situações.” Este é um sentido do signo Inteligência, tirado do dicionário. Dependendo do dicionário temos seis ou sete sentidos um pouco diferentes do significado genérico de Inteligência, mas não completamente diferentes.

   Esta é a base para sabermos o referente, o que é a coisa em si na realidade, além do conhecimento intuitivo e da percepção.

   Como já foi dito, um dicionário não é o “bam bam bam” do entendimento, mas é a base, é onde está a convenção da língua e da linguagem. Quando não se sabe o significado (e os sentidos) de um signo torna-se impossível exprimir em palavras o referente, torna-se impossível expressar o conceito.

   E como já foi dito, a língua e a linguagem são convenções e não tem como ser diferente. Todos nós temos que ter o mesmo significado e sentidos dos signos, pois isso nos dá a base para sabermos o referente na realidade e a realidade é uma só para todos.

   Um bom exemplo neste sentido são as diferentes línguas existentes no mundo. Um Brasileiro por falar a Língua Portuguesa, de certo modo, tem uma mentalidade um pouco diferente de um Alemão que fala a Língua Alemã. Porém, o entendimento básico das coisas é o mesmo. Por exemplo, uma árvore é uma árvore em qualquer lugar mundo não importando em qual língua eu expresso o signo “árvore”. O referente é o mesmo, o conceito “árvore” basicamente é o mesmo. Liberdade, esperança, igualdade, fraternidade, correr, dormir, comer, pular, etc, o conceito básico é o mesmo em qualquer lugar do mundo não importando a língua que se fala.

   O problema é quando se trocam conceitos por palavras.

   Agora tomarei como base o livro de Arthur Schopenhauer “Sobre a Quadrúplice Raiz do Princípio de Razão Suficiente” que é a tese que deu o título de Doutor a Schopenhauer em 1813. Óbvio que tal título de Doutor na época era diferente do título de Doutor que temos hoje em dia, principalmente no Brasil.

   Página 49: “Aristóteles... demonstra cuidadosamente no sétimo capítulo do segundo livro dos Segundos Analíticos que a definição de uma coisa e a prova de sua existência são duas coisas diferentes e eternamente separadas, pois pela primeira tomamos conhecimento do que é pensado, por meio da outra, porém, de que algo assim existe; e como um oráculo do futuro, profere ele a sentença: ‘a existência não pertence à essência de uma coisa; pois existência não é uma propriedade’. Isso significa: A existência jamais pode pertencer à essência das coisas. – Ao contrário disso. O quanto o senhor von Schelling venera a prova ontológica pode ser verificado a partir de uma longa nota da página 152 do primeiro volume de seus Escritos filosóficos de 1809. Mas algo ainda assim mais instrutivo pode ser verificado ali, a saber: que basta matraquear atrevidamente, fazendo ares de grandeza, para lançar poeira nos olhos dos alemães. Mas que até um patrono tão inteiramente deplorável como Hegel, cuja inteira filosofastria era propriamente uma monstruosa amplificação da prova ontológica, tenha querido defende-la contra a crítica de Kant, é uma aliança da qual se envergonharia a própria prova ontológica, por mais que não seja muito de se envergonhar. – Apenas não se espere de mim que fale com apreço de pessoas que levaram a filosofia ao desprezo.”

   Coloquei este trecho para mostrar que a “troca de conceitos por palavras” vem de longe.

   Agora pulo para a página 107: “Amiga – disseram-lhe-, as coisas andam mal para ti, muito mal, desde o dia de teu fatal encontro com o velho cabeça-dura de Königsberg [Kant]; tão mal como para tuas irmãs, a prova ontológica e físico-teológica. Mas, tem coragem: nós não te abandonamos por isso (tu sabes, somos pagos para isso). Entretanto, não há outra coisa a fazer: deves mudar de nome e de vestimentas; porque se te chamarmos por teu nome, todos fogem de nós. Incógnita, porém, nós te tomamos pelo braço e te reconduzimos novamente para entre as pessoas; apenas, porém, como dito, incógnita: isso dá certo! Primeiramente, pois: daqui para diante, teu objeto portará o nome: “o absoluto”; isso soa exótico, decente e nobre – e nós sabemos melhor do que qualquer um o quanto se pode impingir aos alemães com aparências de nobreza – qualquer um sabe o que se entende por essa palavra, e ainda se crê sábio por isso.... O absoluto, exclamas (e nós contigo), ‘que diabos, isso tem de ser, senão não existiria absolutamente nada!’ (e com isso bates com o punho sobre a mesa). Mas de onde procederia ele? ‘Estúpida pergunta! Já não disse que é o absoluto?’ – Isso dá certo, podes crer, dá certo! Os alemães estão habituados a aceitar palavras no lugar de conceitos: para tanto nós os temos adestrado desde a juventude – olha só a hegelianada, que outra coisa é senão um palavrório vazio, oco, e ainda por cima nauseabundo? E, no entanto, que esplêndida carreira fez essa criatura filosófica ministerial! Para isso, não foi preciso senão que alguns companheiros venais entoassem a glória daquela ruindade – para que sua voz, na cavidade oca de mil cabeças estúpidas, encontrasse um eco que ainda hoje ressoa e se propaga. E eis que assim logo se fez de uma cabeça vulgar, sim, de um vulgar charlatão, um grande filósofo. Portanto, toma coragem! Além disso, amiga e protetora, nós te secundamos também por outra razão: com efeito, sem ti não podemos viver” – O velho critiqueiro de Königsberg criticou a razão e cortou-lhe as asas? Pois bem, inventamos então uma nova razão, da qual ninguém tinha ouvido falar até aquele momento; uma razão que não pensa, mas intui imediatamente, que intui idéias (uma palavra distinta, criada para mistificação) em carne e osso; ou também uma razão que apreende, que apreende imediatamente aquilo que tu e os outros apenas queriam demonstrar; ou ainda – para aqueles que só admitem pouco, mas que também com pouco se satisfazem – o presente. E assim, damos conceitos populares de há muito inoculados por inspirações imediatas dessa nova razão, criticada à exaustão, degrademo-la, chamemo-la entendimento, e mandemo-la passear.”

   O que Schopenhauer está dizendo é que trocaram conceitos por palavras. Razão agora se chama entendimento. E o que é entendimento? Ora, entendimento é razão! E o que é razão? Ora, tu és burro? Razão é entendimento! Não entendes uma coisa tão simples assim? Entendimento é razão e razão é entendimento... está explicado.

   A amiga Prova Cosmológica agora chamemos de Absoluto! E o que é o absoluto? Ora, o absoluto é o infinito! E o que é o infinito? Ora, tu és burro? Infinito é o absoluto, cara!

   Não precisamos mais significar as coisas, basta colocar outra palavra no lugar, seja esta palavra um sinônimo ou não.

   Isto dá certo, pode crer!

   O mundo é o finito e o absoluto é o infinito. E o que é o finito? Ora, tu és burro? Já falei que o finito é o mundo!

   E podemos colocar também uma expressão no lugar de qualquer coisa esdrúxula que inventamos sem base nenhuma na realidade, como por exemplo: Politicamente Correto!

   Temos também vários outros chavões imbecis: "consciência de classe", "pensamento crítico", "lutas de classes", "estado democrático de direito", "liberal na economia, conservador nos costumes", "desvelamento do ser", "não é crime, é doença", "racismo estrutural", "dívida histórica", "a culpa é do sistema", "crise climática", "desenvolvimento sustentável", "sociedade igualitária", "combate à pobreza", "direitos dos trabalhadores", "isolamento social", "classes sociais", "direitos humanos", "os fins justificam os meios", "discordo do que você diz, mas defenderei até a morte o seu direito de dizer", "responsabilidade fiscal", "regras democráticas", "aquecimento global", "reformas estruturantes", "vacinação em massa", "manter a governabilidade", "linha da pobreza", "estruturas de poder", "combustível fóssil", "implodir o sistema", "tirania da maioria", "disparidade de gênero", "liberdade de mercado", "milícia digital", "nome social", "ação afirmativa", "isso será um avanço", "isso será um retrocesso", "nunca ouvi falar, mas não tem cabimento", "imperativo categórico", "democracia representativa", "dinheiro público", "desconto antecipado", "redenção democrática", "direitos dos trabalhadores", "compre agora e economize dinheiro", "a exceção é o que confirma a regra", "o Brasil não é para amadores", "consulta o pai dos burros", "pedantismo gramatical"... e por aí vai.

   É a gosto do freguês, o freguês escolhe seus chavões prediletos para repetir como um papagaio. Daria para escrever um livro somente com essas expressões. Um glossário. Aliás, já existem dicionários e glossários de, por exemplos, Marx, Gramsci e Heidegger, além de vários outros. Para ler e entender (se for possível) autores desta cepa, deste estilo de escrita oco, vazio, nauseabundo; primeiro você tem de entender a linguagem própria deles para depois começar a entender do quê eles estão falando. E muitas vezes estão falando de nada; palavras bonitas, mas vazias de conteúdo; muitas vezes sem significado e na maioria das vezes sem referente. Eles usam palavras já existentes na língua e inventam um significado novo saído da cabeça maluca e/ou maligna deles e isso bagunça o referente, você já não sabe mais do que se está falando, mas fica tentando adivinhar e chama essa adivinhação de "interpretação de texto".

   Mas vamos nos deter em analisar como exemplo a expressão "politicamente correto", pois a análise se estende para todas as outras expressões.

   O que é “politicamente correto”? Qual o significado dessa expressão?

   Partirei do básico. Politicamente vem de política: “arte ou ciência de governar”, significado genérico. “Derivação: sentido figurado. habilidade no relacionar-se com os outros, tendo em vista a obtenção de resultados desejados”.

   Politicamente: “ocupar-se de política; fazer política”.

   Correto: “que se corrigiu”. “possuidor de bom caráter; digno, honrado (diz-se de pessoa)”.

   Não coloquei todos os sentidos de “política”, “politicamente” e “correto”, mas já dá para entender.

   Politicamente Correto é alguém que é correto na política?

   É alguém que tem uma política correta?

   É alguém possuidor de bom caráter na política?

   Ou é outra coisa?

   São significados diferentes. Alguém que é correto na política obrigatoriamente é um político. Alguém que tem uma política correta não necessariamente é um político, pode ser um cidadão ali que tem uma política de vida e segue ela. São coisas diferentes.

   Então o que é politicamente correto? Ora, inventemos um significado qualquer que nem significado é. Politicamente correto agora é “evitar certas palavras preconceituosas com relação a grupos de sexo, raça, gênero ou sei lá mais o quê”. Ou mais, faremos dossiês, artigos acadêmicos, livros inteiros tentando explicar o que é “politicamente correto” (somos pagos para isso).

   Daremos mil “significados” de politicamente correto. Ganharemos pela quantidade e não pela qualidade. Eu vou citando você e você vai me citando, a nossa patota vai se auto-promovendo, assim teremos milhões de citações acadêmicas. O que importa a verdade? O que importa a realidade? Verdade e realidade são coisas ultrapassadas, são retrocessos, não é um avanço, não são coisas progressistas.

   Mas voltando. “Evitar certas palavras”... quais palavras devo evitar? Existe uma lista de palavras que devo evitar?

   Ora, tu és burro? As palavras que tu deves evitar são as palavras preconceituosas em relação aos grupos ali!

   Mas o que é “preconceituoso”? Não é um conceito subjetivo?

   O que decorre disso na realidade é que se alguém me falar alguma coisa que eu não goste (vai do meu capricho), eu digo que é politicamente incorreto. Pronto: acrescentei mais uma palavra (ou expressão) na tal da lista que não existe! E o absurdo não pára de crescer.

   Quando dizem que “politicamente correto” é uma forma de censura eu concordo, mas o estrago vai mais além: causa emburrecimento.

   Trocar conceitos por palavras ou expressões inventadas dá nisso: emburrecimento geral.

   E podemos ver que na expressão “politicamente correto” foram juntados dois signos que não dá para juntar. Um altera o significado do outro. A partir daí não há base na realidade e temos que inventar alguma coisa para significar em palavras o que é isso. É como a frase: "A pedra da bola pegou fogo". Ortograficamente e sintaticamente está correta, mas semanticamente não tem sentido nenhum. E num texto e/ou discurso temos que, obrigatoriamente, preencher os três: ortografia, sintaxe e semântica.

   Com palavras bonitas, mas vazias de conteúdo estamos fora da realidade. Trocamos conceitos por palavras esvaziadas de significados, de sentidos e de definições, e por isso não captamos mais o referente.

   Passamos a falar por chavões, palavras vazias, signos sem significados e, por conseguinte, sem referente. Nos distanciamos da realidade, vivemos em um mundo de ilusão onde não nos entendemos mais. Falamos a mesma língua, mas não falamos a mesma linguagem.

   Língua é a Língua Portuguesa, a Língua Inglesa, a Língua Francesa, etc.

   Linguagem engloba a língua, todo signo tem um conceito, um significado, uma definição e, de acordo com seu sentido, tem seu referente que forma a mentalidade de uma nação que fala a mesma língua.

   Caso eu fale “politicamente correto” e isso enseja várias adivinhações de acordo com a cabeça de cada um, temos confusão, não nos entendemos mais. Nesta hora precisa de um supremo sabedor da verdade para nos dizer o que significa isso, sendo que o supremo sabedor da verdade também não sabe o que é, então ele junta palavras bonitas, mas vazias de conteúdo e você sai repetindo isso por aí.

   Falamos a mesma língua, mas não falamos a mesma linguagem. E assim vamos emburrecendo.

   Êêê, vamos todo mundo ficarmos burros, assim teremos igualdade... que, aliás, “igualdade” é um conceito subjetivo.

   Ficaremos todos iguais na burrice, mas sempre tem uns que são “mais iguais do que os outros”.

   Uma população burra é fácil de controlar, mas a burrice leva à violência, uma pessoa burra só sabe resolver as coisas na base da violência (seja ela física e/ou psicológica), isso é fato.
   E não confundam esse tipo (sentido) de burrice com a falta de conhecimento; esta é justificável, aquela burrice é o que se chama de astúcia maligna - a caricatura satânica da inteligência - que leva à baixeza moral e à baixeza intelectual.

   A estultice, a estupidez de quem pensa que pode controlar uma população burra, drogada e promíscua é equivalente à burrice dessa mesma população.

   Mas tudo em prol da “revolução”, da revolução surgirá o novo ser humano!

   Dos escombros da humanidade surgirá o novo ser humano... não sei como.

   Mas posso imaginar: esse novo ser humano que surgirá virá do caos que leva à ordem.

   E assim vamos trocando conceitos por palavras: “do caos vem a ordem” é um chavão de tamanha estupidez e é errado em tantos níveis que até é difícil explicar. Mas vamos repetindo isso através da grande propaganda que todo mundo acredita que do caos vem a ordem... e vamos promovendo o caos, vamos promovendo a destruição esperando a reconstrução a partir dos entulhos que restaram da burrice. Vamos juntar os entulhos para formar uma pilha de escombros e vamos dar a esse conceito um novo nome: sociedade igualitária. Uma expressão esvaziada de tudo.

segunda-feira, 14 de agosto de 2023

Instalar OBS Studio e VLC no Slackware 15

À MODA [QUASE] SLACK

   Tomem essa instalação como uma forma de aprendizado, pois os pacotes instalados aqui tem um padrão que será praticamente o mesmo no Slackware em relação à SlackBuilds e as instalações de um modo geral.

   O OBS Studio (Open Broadcaster Software) é um software livre e de código aberto para gravação de vídeo e transmissão em tempo real.
Ele captura e mistura vídeo/áudio em tempo real de alto desempenho, com cenas ilimitadas nas quais você pode alternar através de transições personalizadas sem interrupções.

   Primeiro faremos [quase] à moda Slack (só para os fortes... ou teimosos)!
A vantagem é que assim você escolhe a versão que quer instalar ou instala o programa mais atual possível.

   A sequência de instalação de pacotes com SlackBuild praticamente será a seguinte não importando o programa (software, pacote, etc) a ser instalado:

1 - Logue como root;
2 - Atualize o sistema;
3 - Baixe sempre primeiro o SlackBuild (pacote.tar.gz);
4 - Descompacte-o;
5 - Entre na pasta descompactada;
6 - Baixe o fonte (source);
7 - Execute o SlackBuild;
8 - Copie o pacote para a pasta;
9 - Instale o pacote tgz criado.

   Estritamente à moda Slack é você mesmo escrever os fontes, compilá-los e instalá-los.

   Na segunda parte tem uma maneira mais fácil (para os fracos).
   O programa instalado é o que está nos repositórios, geralmente é de uma versão anterior à mais atual.

   A instalação é para 64 bits, mas é só mudar o arquivo se teu sistema for 32 bits que o procedimento é o mesmo.
   Maiores informações e pacotes você encontra aqui:

Abra o terminal e logue como root.
$ su -

Verificando a versão do OpenGL, necessário para o OBS Studio:
# glxinfo | grep "OpenGL" <<< o OpenGL deverá ser maior ou igual a 3.3, senão você deverá atualizar o OpenGL.

OpenGL vendor string: Intel
OpenGL renderer string: Mesa Intel(R) HD Graphics 630 (KBL GT2)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 21.3.5

Atualizando o sistema:
# slackpkg update

Salvaremos tudo na pasta obs_studio criada em /opt:
# cd /opt
# mkdir obs_studio
# cd obs_studio

   Siga as instalações na ordem: faac, jack, luajit, libfdk-aac, mbedtls, rtmpdump, x264, nlohmann_json, vlc, obs-studio.


FAAC
Este é o único que será diferente dos outros.
# wget https://github.com/knik0/faac/archive/1_30/faac-1_30.tar.gz
# tar -xzf faac-1_30.tar.gz
# cd faac-1_30
# ./bootstrap
# ./configure
# make
# make install

Deverá terminar:
make[2]: Saindo do diretório '/opt/obs_studio/faac-1_30'

make[1]: Saindo do diretório '/opt/obs_studio/faac-1_30'

Caso der ERROR em algum momento você deverá refazer o processo e caso o error persistir você deve ler a mensagem de erro e tentar solucioná-lo, pois não é o escopo do artigo.
Você pode olhar dentro do arquivo INSTALL que estão ali todos os comandos para compilar o pacote.

Voltando um diretório:
# cd ..


JACK
E seguindo na ordem, agora o pacote JACK:
# removepkg jack2 <<< removendo alguma provável instalação anterior
# removepkg jack

Download do pacote jack.tar.gz para facilitar e não precisar alterar arquivos:
# wget https://slackbuilds.org/slackbuilds/15.0/audio/jack.tar.gz

Descompactando:
# tar -xzf jack.tar.gz

Entrando no diretório:
# cd jack

Baixando o pacote dos fontes, necessário para a compilação:
# wget https://github.com/jackaudio/jack2/archive/v1.9.21/jack2-1.9.21.tar.gz
# ls <<< para conferir se o arquivo foi baixado

Compilando:
# ./jack.SlackBuild

Deverá terminar dizendo que o pacote tgz foi criado:
usr/share/dbus-1/services/
usr/share/dbus-1/services/org.jackaudio.service

Slackware package /tmp/jack-1.9.21-x86_64-1_SBo.tgz created.

Copiando para a pasta jack o pacote tgz criado:
# cp /tmp/jack-1.9.21-x86_64-1_SBo.tgz . <<< no final tem um ponto (.) separado do tgz por um espaço em branco, significa que o arquivo deve ser copiado para o diretório no qual se está.
# ls

Instalando:
# installpkg jack-1.9.21-x86_64-1_SBo.tgz

Terminará:
Executing install script for jack-1.9.21-x86_64-1_SBo.tgz.
Package jack-1.9.21-x86_64-1_SBo.tgz installed.

Você pode conferir dentro do diretório /usr/bin que foram criados uns 40 arquivos jack.
As instalações são rápidas, o que demora são as compilações.


LUAJIT
# cd ..
# wget https://slackbuilds.org/slackbuilds/15.0/development/luajit.tar.gz
# tar -xzf luajit.tar.gz
# ls
# cd luajit
# wget http://luajit.org/download/LuaJIT-2.0.5.tar.gz
# ./luajit.SlackBuild

Terminará:
Slackware package /tmp/luajit-2.0.5-x86_64-2_SBo.tgz created.

# cp /tmp/luajit-2.0.5-x86_64-2_SBo.tgz .
# installpkg luajit-2.0.5-x86_64-2_SBo.tgz

Terminará:
Executing install script for luajit-2.0.5-x86_64-2_SBo.tgz.
Package luajit-2.0.5-x86_64-2_SBo.tgz installed.

De novo, caso quiser conferir em /usr/bin.


LIBFDK-AAC
# cd ..
# wget https://slackbuilds.org/slackbuilds/15.0/libraries/libfdk-aac.tar.gz
# ls
# tar -xzf libfdk-aac.tar.gz
# ls
# cd libfdk-aac
# wget https://github.com/mstorsjo/fdk-aac/archive/v2.0.2/fdk-aac-2.0.2.tar.gz
# ls
# ./libfdk-aac.SlackBuild

Terminará:
Slackware package /tmp/libfdk-aac-2.0.2-x86_64-1_SBo.tgz created.

# cp /tmp/libfdk-aac-2.0.2-x86_64-1_SBo.tgz .
# ls
# installpkg libfdk-aac-2.0.2-x86_64-1_SBo.tgz

Terminará:
Executing install script for libfdk-aac-2.0.2-x86_64-1_SBo.tgz.
Package libfdk-aac-2.0.2-x86_64-1_SBo.tgz installed.


MBEDTLS
# cd ..
# wget https://slackbuilds.org/slackbuilds/15.0/libraries/mbedtls.tar.gz
# ls
# tar -xzf mbedtls.tar.gz
# cd mbedtls
# wget https://github.com/ARMmbed/mbedtls/archive/mbedtls-2.16.8/mbedtls-mbedtls-2.16.8.tar.gz
# ls
# ./mbedtls.SlackBuild

Terminará:
Slackware package /tmp/mbedtls-2.16.8-x86_64-1_SBo.tgz created.

# cp /tmp/mbedtls-2.16.8-x86_64-1_SBo.tgz .
# installpkg mbedtls-2.16.8-x86_64-1_SBo.tgz

Terminará:
Executing install script for mbedtls-2.16.8-x86_64-1_SBo.tgz.
Package mbedtls-2.16.8-x86_64-1_SBo.tgz installed.


RTMPDUMP
# cd ..
# wget https://slackbuilds.org/slackbuilds/15.0/multimedia/rtmpdump.tar.gz
# tar -xzf rtmpdump.tar.gz
# cd rtmpdump
# wget http://ponce.cc/slackware/sources/repo/rtmpdump-20210219_f1b83c1.tar.xz
# ls
# ./rtmpdump.SlackBuild

Terminará:
Slackware package /tmp/rtmpdump-20210219_f1b83c1-x86_64-1_SBo.tgz created.

# cp /tmp/rtmpdump-20210219_f1b83c1-x86_64-1_SBo.tgz .
# ls
# installpkg rtmpdump-20210219_f1b83c1-x86_64-1_SBo.tgz

Terminará:
Executing install script for rtmpdump-20210219_f1b83c1-x86_64-1_SBo.tgz.
Package rtmpdump-20210219_f1b83c1-x86_64-1_SBo.tgz installed.


X264
# cd ..
# wget https://slackbuilds.org/slackbuilds/15.0/multimedia/x264.tar.gz
# tar -xzf x264.tar.gz
# cd x264
# wget https://sources.liwjatan.org/x264/x264-git_20210613_5db6aa6c.tar.lz
# ls
# ./x264.SlackBuild

Terminará:
Slackware package /tmp/x264-git_20210613_5db6aa6c-x86_64-1_SBo.tgz created.

# cp /tmp/x264-git_20210613_5db6aa6c-x86_64-1_SBo.tgz .
# installpkg x264-git_20210613_5db6aa6c-x86_64-1_SBo.tgz

Terminará:
Executing install script for x264-git_20210613_5db6aa6c-x86_64-1_SBo.tgz.
Package x264-git_20210613_5db6aa6c-x86_64-1_SBo.tgz installed.


NLOHMANN_JSON
# cd ..
# wget https://slackbuilds.org/slackbuilds/15.0/libraries/nlohmann_json.tar.gz
# tar -xzf nlohmann_json.tar.gz
# ls
# cd nlohmann_json
# wget https://github.com/nlohmann/json/archive/v3.11.2/json-3.11.2.tar.gz
# ls
# ./nlohmann_json.SlackBuild

Terminará (este demora um bocado):
Slackware package /tmp/nlohmann_json-3.11.2-x86_64-1_SBo.tgz created.

# cp /tmp/nlohmann_json-3.11.2-x86_64-1_SBo.tgz .
# installpkg nlohmann_json-3.11.2-x86_64-1_SBo.tgz

Terminará:
#
Package nlohmann_json-3.11.2-x86_64-1_SBo.tgz installed.


VLC
Caso você já tiver o VLC instalado aconselho a desinstalar e depois instalar este.
# cd ..
# wget https://slackbuilds.org/slackbuilds/15.0/multimedia/vlc.tar.gz
# tar -xzf vlc.tar.gz
# cd vlc

Agora vamos precisar mexer no arquivo vlc.SlackBuild para evitar o erro "configure: error: Could not find lua. Lua is needed for some interfaces (rc, telnet, http) as well as many other custom scripts. Use --disable-lua to ignore this error.":
# vim vlc.SlackBuild <<< usei o vim, use teu editor preferido.

Acrescente as duas últimas linhas (--disable-lua \ e --enable-luajit=2.0.5 \) na seguinte posição do arquivo, por volta da linha 134:
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--sysconfdir=/etc \
--mandir=/usr/man \
--docdir=/usr/doc/vlc-$VERSION \
--localstatedir=/var \
--build=$ARCH-slackware-linux \
--enable-qt=5 \
--enable-merge-ffmpeg \
--disable-upnp \
--disable-libplacebo \
--disable-lua \
--enable-luajit=2.0.5 \
$wayland \

Salve e saia do arquivo.

# wget https://get.videolan.org/vlc/3.0.18/vlc-3.0.18.tar.xz
# ls
# chmod +x vlc.SlackBuild
# ./vlc.SlackBuild

Ignore as mensagens em rosa e azul e os "warning".
O VLC também demorará um bocado, aguarde terminar.

Terminando como abaixo é porque deu tudo certo:
Slackware package /tmp/vlc-3.0.18-x86_64-1_SBo.tgz created.

# cp /tmp/vlc-3.0.18-x86_64-1_SBo.tgz .
# installpkg vlc-3.0.18-x86_64-1_SBo.tgz

Terminará:
Executing install script for vlc-3.0.18-x86_64-1_SBo.tgz.
Package vlc-3.0.18-x86_64-1_SBo.tgz installed.


OBS Studio
# cd ..
# wget https://slackbuilds.org/slackbuilds/15.0/multimedia/obs-studio.tar.gz
# tar -xzf obs-studio.tar.gz
# cd obs-studio

Aqui precisa dos dois fontes:
# wget https://cdn-fastly.obsproject.com/downloads/cef_binary_4638_linux64.tar.bz2
# wget https://sourceforge.net/projects/slackbuildsdirectlinks/files/obs/obs-studio-c58e511813c33e93da7637d50aa431ae0cddda0c.tar.gz
# ls
# chmod +x obs-studio.SlackBuild
# ./obs-studio.SlackBuild

Demorará um bocado e terminará:
Slackware package /tmp/obs-studio-29.1.3-x86_64-1_SBo.tgz created.

# cp /tmp/obs-studio-29.1.3-x86_64-1_SBo.tgz .
# installpkg /tmp/obs-studio-29.1.3-x86_64-1_SBo.tgz

Terminará:
Executing install script for obs-studio-29.1.3-x86_64-1_SBo.tgz.
Package obs-studio-29.1.3-x86_64-1_SBo.tgz installed.

E está terminado, done, feito!


Figura 01


   Para qualquer SlackBuild aconselho a fazer esse procedimento, pois é mais garantido e menos sujeito a erros.
   Todo e qualquer SlackBuild aconselho a realizar esse procedimento, não importando a versão dos arquivos.
   Os sources (aqueles pacotes que tem o número da versão, logo abaixo de "Source Downloads") não tem o arquivo SlackBuild, por isso para facilitar baixamos os dois pacotes, pois o pacote "Download SlackBuild" é o que tem o arquivo Slackbuild.

   Você pode acessar o link
https://slackbuilds.org/repository/15.0/multimedia/obs-studio/
e baixar os pacotes com cliquezinhos do mouse, mas tenha o cuidado de organizá-los numa pasta.
   Optei pelo procedimento acima porque ficou mais organizada a sequência.


MANEIRA FÁCIL

Verificando a versão do OpenGL, necessário para o OBS Studio:
# glxinfo | grep "OpenGL" <<< o OpenGL deverá ser maior ou igual a 3.3, senão você deverá atualizar o OpenGL.

OpenGL vendor string: Intel
OpenGL renderer string: Mesa Intel(R) HD Graphics 630 (KBL GT2)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 21.3.5

# slackpkg update
# cd /opt

Escolha se for 15.0
# wget http://www.slackware.com/~alien/slackbuilds/obs-studio/pkg64/15.0/obs-studio-28.1.2-x86_64-1alien.txz

Ou se for current
# wget http://www.slackware.com/~alien/slackbuilds/obs-studio/pkg64/current/obs-studio-28.1.2-x86_64-1alien.txz

# upgradepkg --install-new obs-studio-28.1.2-x86_64-1alien.txz

Aparecerá algo parecido como abaixo:

+==============================================================================
| Installing new package ./obs-studio-28.1.2-x86_64-1alien.txz
+==============================================================================

Verifying package obs-studio-28.1.2-x86_64-1alien.txz.
Installing package obs-studio-28.1.2-x86_64-1alien.txz:
PACKAGE DESCRIPTION:
# obs-studio (software for video recording and live streaming)
#
# OBS-studio is software for video recording and live streaming.
# It allows to create scenes made up of multiple sources including
# window captures, images, text, browser windows, webcams,
# capture cards and more.
# The interface makes it easy to transition between scenes and has
# a powerful audio mixer with per-stream filters.
# OBS supports all major streaming platforms.
#
# See also: https://obsproject.com/
Executing install script for obs-studio-28.1.2-x86_64-1alien.txz.
Package obs-studio-28.1.2-x86_64-1alien.txz installed.

Depois, se for Xfce, vá em Aplicações > Multimídia > deverá estar OBS Studio.


Figura 02



Referências






quinta-feira, 10 de agosto de 2023

Instalar certificado SSL/TLS digital válido gratuito no Linux



INTRODUÇÃO

Um certificado SSL (Secure Sockets Layer) é um tipo de certificado digital que é usado para autenticar a identidade de um website e proteger a comunicação entre o website e os usuários que o acessam.

O SSL é um protocolo de segurança que criptografa a conexão entre o navegador do usuário e o servidor do website, garantindo que a informação enviada e recebida seja mantida privada e segura contra hackers e interceptações.

Os certificados SSL são emitidos por autoridades certificadoras confiáveis e contêm informações sobre o nome do proprietário do website, a validade do certificado e a chave pública usada para criptografar a conexão. Quando um usuário visita um site com um certificado SSL válido, seu navegador exibe um ícone de cadeado na barra de endereço para indicar que a conexão é segura.

Um certificado SSL (Secure Sockets Layer) é um certificado digital que criptografa e autentica a comunicação entre um navegador da web e um servidor da web. Ele é usado para proteger a privacidade dos usuários e garantir que as informações transmitidas entre o navegador e o servidor sejam seguras e privadas.

Os certificados SSL são usados em sites que lidam com informações confidenciais, como informações de login, informações de pagamento ou informações pessoais dos usuários. Eles ajudam a prevenir ataques de hackers e garantem que as informações não sejam interceptadas ou roubadas durante a transmissão.

Os certificados SSL são emitidos por autoridades certificadoras confiáveis e contêm informações sobre o proprietário do site, a data de validade do certificado e a chave pública usada para criptografar as informações. Quando um usuário visita um site com um certificado SSL válido, o navegador exibe um cadeado na barra de endereço, indicando que a conexão é segura. Isso transmite confiança e oferece garantia para quem está visitando o site.

O certificado que usaremos aqui será o da Let's Encrypt que utiliza a ferramenta Certbot para instalar o certificado.

O Certbot é uma ferramenta de software gratuita e de código aberto para usar automaticamente os certificados Let's Encrypt em sites administrados manualmente para habilitar o HTTPS.

O Certbot é feito pela Electronic Frontier Foundation (EFF), uma organização sem fins lucrativos 501(c)3 (501(c)3 é um item da legislação tributária norte-americana que trata de organizações sem fins lucrativos que têm direitos à isenção de impostos) com sede em San Francisco, CA, que defende a privacidade digital, a liberdade de expressão e a inovação.

O antigo protocolo SSL, atualmente TLS (Transport Layer Security), geralmente designado por SSL/TLS, começou a ser usado há quase 25 anos, sendo que a designação correta atual é TLS, mas as as iniciais SSL permaneceram, por isso a nova versão do protocolo ainda é comumente referida pelo antigo nome.

Muitos provedores de hospedagem possuem ferramentas internas para habilitar o HTTPS. Antes de usar o Certbot, verifique se o seu provedor de hospedagem é um deles .

Caso não utilize um provedor de hospedagem e tenha seu site hospedado num servidor em casa ou na sua empresa, então este artigo lhe será muito útil.

As distribuições testadas foram os Debian 10, 11 e 12 e o Ubuntu 22.04, todos no Apache2, porém, acredito que a instalação servirá para a maioria das distribuições.

INSTALANDO

Na própria página oficial do Certbot encontramos instruções de instalação para várias distribuições Linux:

Basta acessar a página, escolher o software (Apache, Nginx, etc) e escolher o sistema operacional e aparecerão instruções de instalação.

Contudo, a instalação aqui demonstrada procurou evitar as sugestões da página oficial, pois a maioria das instalações ali sugeridas pedem primeiro a instalação do Snapd, todavia, não utilizei o Snapd para evitar mais camadas intermediárias, entretanto, caso você queira, utilize o snap.

*** LEIA ATÉ O FINAL ANTES DE SAIR EXECUTANDO COMANDOS ***

Parece complicado, mas a sequência de comandos é curtinha. Optei por dar explicações a mais do que o necessário. Os comandos são utilizados como root ou sudo, se quiser, e devem ser executados na ordem abaixo:

# apt-get update
# apt-get install certbot python3-certbot-apache
# systemctl reload apache2
# apache2ctl configtest

Deverá aparecer Syntax Ok.

Agora antes de continuar dando o último comando veja o arquivo de configuração teu_site.conf (ou 000-default.conf ou com o nome que você deu) em /etc/apache2/sites-available e verifique se o parâmetro ServerName está com www, por exemplo: www.exemplo.com.br.

Se não estiver, coloque e dê um reload no Apache2 e teste abrindo o navegador.

Porém, depois colocando as configurações oferecidas na próxima página provavelmente não terá esse problema.

Agora escolha como você gostaria de executar o Certbot.

Execute o comando abaixo para obter um certificado e fazer com que o Certbot edite sua configuração do apache automaticamente ativando o acesso HTTPS em uma única etapa.

# certbot --apache

Ou apenas obtenha um certificado.

Se você se sentir mais conservador e quiser fazer as alterações na configuração do Apache manualmente, execute este comando:

# certbot certonly --apache
(dê preferência para este comando)

ou

# certbot certonly --apache -d exemplo.com.br -d www.exemplo.com.br

este comando já indica o domínio/site para o qual deve ser gerado o certificado.

Sugiro FORTEMENTE que utilizem o comando "certbot certonly --apache" porque vamos configurar o Apache2 manualmente, sendo que deixarei um exemplo de arquivo "meu_site.conf" que deverá ficar no diretório /etc/apache2/sites-available.

Com o comando "certbot --apache", sem certonly, a ferramenta realiza automaticamente as configurações dos arquivos e isso trouxe problemas com alguns programas como, por exemplo: o PgAdmin4-web perdeu o acesso a conexão com o servidor. Esse foi um dos softwares que saíram feridos na realização das instalações, mas eles passam bem no momento.

Tal fato aconteceu porque com o comando "certbot --apache" uma das perguntas que aparecem é esta:

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
  • - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
  • - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

Caso escolher a opção 1, para não redirecionar automaticamente todas as conexões para HTTPS você deverá configurar manualmente os redirects nos arquivos, porém, ainda assim o Certbot se mete em algumas outras configurações do Apache.

Caso escolher a opção 2, para redirecionar automaticamente todas as conexões e mesmo ali dizendo que você pode desfazer isso (You can undo this) editando seus arquivos de configurações do Apache, ainda assim não é uma boa opção, pois o Cerbot se entranha no Apache.

EXECUTE o comando:

# certbot certonly --apache

e responda algumas perguntas e forneça um e-mail.

Responda Yes para todas ou, se quiser, responda No para a pergunta que pede se a Electronic Frontier Foundation (EFF) pode compartilhar seu email para receber mensagens dela.

Aparecerá algo parecido com o que está abaixo:

Plugins selected: Installer apache Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): seu@email.com.br

  • - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory
  • - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

(A)gree/(C)ancel: A

  • - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom.
  • - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

(Y)es/(N)o: Y

Com o comando certbot certonly --apache uma das perguntas que aparecerão a seguir é a pergunta que pede para escolher em qual site gerar o certificado.


O Certbot "pega" as informações do ServerName e do ServerAlias dos arquivos do Apache2, por exemplo:

ServerName www.exemplo.com.br:80
ServerAlias exemplo.com.br exemplo exemplo2

Segundo a documentação do Apache2 a sintaxe do ServerName é:

ServerName fully-qualified-domain-name[:port]

Ou seja, www.exemplo.com.br:80 ou seguido da porta utilizada, porém, na própria documentação diz que se não for colocada a porta o Apache2 procura a porta indicada no virtualhost.

Depois no arquivo de configuração veremos como isso se dá na prática e que colocar www.exemplo.com.br ou exemplo.com.br no ServerName faz muita diferença.

A sintaxe do ServerAlias é:

ServerAlias hostname hostname ...

<VirtualHost *>
ServerName server.domain.com
ServerAlias server server2.domain.com server2
# ...
</VirtualHost>

Caso o Certbot sugira duas opções de sites para instalar o certificado, por exemplo:

1. exemplo.com.br
2. www.exemplo.com.br

escolha sempre a opção com www e procure verificar no arquivo de configuração exemplo.conf em sites-available se o parâmetro ServerName está com www.

Caso ofereça somente uma opção escolha essa mesma, óbvio.

Depois seguirá:

Obtaining a new certificate
Performing the following challenges:
http-01 challenge for exemplo.conf
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/exemplo.conf
Enabled Apache socache_shmcb module
Enabled Apache ssl module
Deploying Certificate to VirtualHost /etc/apache2/sites-available/exemplo.conf
Enabling available site: /etc/apache2/sites-available/exemplo.conf

  • - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Congratulations! You have successfully enabled https://www.exemplo.com.br

IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/www.exemplo.com.br/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/www.exemplo.com.br/privkey.pem
Your cert will expire on 2019-10-24. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:

Donating to ISRG / Lets Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le

Em /etc/letsencrypt/live/www.exemplo.com.br/fullchain.pem está o caminho para o certificado.

Em /etc/letsencrypt/live/www.exemplo.com.br/privkey.pem está o caminho para a chave.

Resumindo a sequência de comandos:

# apt-get update
# apt-get install certbot python3-certbot-apache
# systemctl reload apache2
# apache2ctl configtest
# certbot certonly --apache

Veremos a seguir a configuração do arquivo meu_site.conf que fica em /etc/apache2/sites-available.


CONFIGURANDO

RENOVAÇÃO DOS CERTIFICADOS
O certificado auto-assinado é válido por 90 dias. No entanto, este pode ser renovado quando estiver prestes a expirar nos últimos 30 dias.

RENOVAÇÃO MANUAL
O processo de renovação dos certificados Let's Encrypt é facilitado pelo certbot que reutiliza os parâmetros usados na criação do certificado.

Os certificados são renovados apenas se estiverem prestes a expirar.

Caso tente renovar antes do término do prazo de 90 dias dará um aviso de que não foi possível renovar:

# certbot renew

Saving debug log to /var/log/letsencrypt/letsencrypt.log

-----------------------------------------------------------------------------------------------
Processing /etc/letsencrypt/renewal/exemplo.com.conf
-----------------------------------------------------------------------------------------------
Cert not yet due for renewal

The following certs are not due for renewal yet:
/etc/letsencrypt/live/home.example.com/fullchain.pem (skipped)
No renewals were attempted.

----------------------------------------------------------------------------------------------

Antes de renovar pode fazer uma simulação com:

# certbot renew --dry-run

RENOVAÇÃO AUTOMÁTICA
Opcionalmente, pode-se criar uma tarefa agendada no Cron para proceder à renovação automática dos certificados quando estes estiverem prestes a expirar.

Durante a instalação o certbot configura essa tarefa de forma automática.

Você pode vislumbrar o arquivo com:

# vim /etc/cron.d/certbot
* ou use teu editor de texto predileto.

# /etc/cron.d/certbot: crontab entries for the certbot package
#
# Upstream recommends attempting renewal twice a day
#
# Eventually, this will be an opportunity to validate certificates
# haven't been revoked, etc.  Renewal will only occur if expiration
# is within 30 days.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

0 */12 * * * root test -x /usr/bin/certbot -a ! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && certbot -q renew

Para adicionar um domínio:
# certbot-auto --expand -d dominio1.com.br,dominio2.com.br

Para deletar um certificado:
# certbot revoke --cert-path /etc/letsencrypt/live/www.exemplo.com/fullchain.pem

Para ver o status e se o certificado está ativo e ver informações como data, etc:
# systemctl status certbot.timer

Arquivo meu_site.conf:
# cd /etc/apache2/sites-available
# vim meu_site.conf

Lembrando que o arquivo meu_site.conf você já deverá tê-lo criado na instalação e configuração do Apache2.

Aqui chamaremos de exemplo.conf.
# vim exemplo.conf

Coloque o seguinte dentro do arquivo e/ou adapte para as tuas configurações:

<VirtualHost *:80>
   ServerName www.exemplo.com.br
   ServerAlias exemplo.com.br
   Redirect permanent / https://www.exemplo.com.br/
   # ErrorLog ${APACHE_LOG_DIR}/www.exemplo.com.br/www-error.log
   # CustomLog ${APACHE_LOG_DIR}/www.exemplo.com.br/www-access.log combined
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
#
<VirtualHost _default_:443>
   ServerName exemplo.com.br
   Redirect permanent / https://www.exemplo.com.br/
   SSLProxyEngine on
   SSLEngine on
   SSLCertificateFile        /etc/letsencrypt/live/www.exemplo.com.br/cert.pem
   SSLCertificateKeyFile /etc/letsencrypt/live/www.exemplo.com.br/privkey.pem
   SSLCaCertificateFile   /etc/letsencrypt/live/www.exemplo.com.br/fullchain.pem
</VirtualHost>
#
<IfModule mod_ssl.c>
        <VirtualHost _default_:443>
                ServerAdmin admin@exemplo.com.br
                ServerName www.exemplo.com.br
                DocumentRoot /var/www/exemplo.com.br
                SSLEngine on
    SSLCertificateFile        /etc/letsencrypt/live/www.exemplo.com.br/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/www.exemplo.com.br/privkey.pem
    SSLCaCertificateFile   /etc/letsencrypt/live/www.exemplo.com.br/fullchain.pem
                <FilesMatch ".(cgi|shtml|phtml|php)$">
                </FilesMatch>
                <Directory /usr/lib/cgi-bin>
                </Directory>
                BrowserMatch "MSIE [2-6]"
                                nokeepalive ssl-unclean-shutdown
                                downgrade-1.0 force-response-1.0
                BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
        </VirtualHost>
</IfModule>

Coloque teu site no lugar de www.exemplo.com.br e acrescente as tuas configurações no arquivo, se quiser. Salve e saia do arquivo e execute:

Para criar um link com sites-enabled, se já não tiver:
# a2ensite exemplo.conf

Para dar um reload nas configurações:
# systemctl reload apache2

Para reiniciar o Apache2:
# systemctl restart apache2

Teste abrindo o navegador e digitando na barra de endereços:

www.exemplo.com.br

e verá teu site abrir com HTTPS e o cadeado ao lado.

Caso isso não aconteça ou que apareça aquela página escrota de "site não confiável", certificado inválido, etc, pode ser que seja a tua primeira vez com o Certbot, então acesse o e-mail que tu cadastrou na instalação e clique no link do e-mail enviado pelo Certbot para ativar. As vezes é necessário, as vezes não.

Repare que temos três linhas:

SSLCertificateFile         /etc/letsencrypt/live/exemplo.com.br/cert.pem
SSLCertificateKeyFile  /etc/letsencrypt/live/exemplo.com.br/privkey.pem
SSLCaCertificateFile    /etc/letsencrypt/live/exemplo.com.br/fullchain.pem

  • SSLCertificateFile - arquivo de dados de certificado X.509 codificado por PEM do servidor ou identificador de token; aponta para um arquivo com os dados do certificado.
  • SSLCertificateKeyFile - arquivo de chave privada codificado por PEM do servidor; aponta para o arquivo de chave privada.
  • SSLCaCertificateFile - arquivo de certificados CA codificados por PEM concatenados para autenticação do cliente; define o arquivo tudo-em-um onde são montados os Certificados das Autoridades Certificadoras (CA).

PEM - significa Privacy Enhanced Mail (E-mails reforçados para privacidade). O formato PEM é frequentemente usado para representar certificados, solicitações de certificado, cadeias de certificados e chaves. A extensão típica para um arquivo formatado como PEM é . pem, mas não precisa ser. É usado para estabelecer um canal de comunicação seguro entre um servidor da Web e um navegador. É codificado em Base64 e pode conter uma chave privada, certificado de servidor e/ou uma combinação de outros certificados.

Grosso modo, PEM é um formato de arquivo contêiner que define a estrutura e o tipo de codificação do arquivo usado para armazenar os dados.

A linha repetida nos VirtualHosts 80 e 443:

Redirect permanent / https://www.exemplo.com.br/

fazem o redirecionamento de todas as conexões HTTP para HTTPS, ou seja, se alguém acessar teu site com http://www.exemplo.com.br será sempre automaticamente redirecionado para https://www.exemplo.com.br.

Caso tiver arquivos 000-default.conf aconselho a executar:
# mv 000-default.conf 000-default.conf.bkp

As linhas ServerName e ServerAlias deixe-as como estão.

Pode testar colocando ServerName e ServerAlias, os dois somente com www.exemplo.com.br ou com exemplo.com.br e verá que teu site poderá ficar lento ou aparecer o erro ERR_CONNECTION_REFUSED. O Apache é um cara bem sensível.

As linhas com BrowserMatch, pesquise no link com mod_setenvif abaixo.

A título de curiosidade, no arquivo README.Debian.gz do Apache2 encontramos informações interessantíssimas.

Caminho no Debian, procure o caminho na tua distribuição:
# vim /usr/share/doc/apache2/README.Debian.gz


REFERÊNCIAS