Pular para o conteúdo principal

Postagem em destaque

BlackTDN :: Social :: Rifa Festival da Arte Capoeira Projeto Eu Sou Ninja

Angariar fundos para cobrir os custos logísticos do "Festival da Arte Capoeira" e apoiar o projeto Eu Sou Ninja em sua missão de promover a integração social e cultural na comunidade de Jacaraípe. Com a criação da rifa, buscamos envolver a comunidade de forma ativa no financiamento do evento, permitindo que todos contribuam para o sucesso do festival e para a continuidade das atividades do projeto. Prêmio: Copia da minha biblioteca pessoal de AdvPL/TLpp ..etc Participe da Rifa Eu já contribui. Só falta você! ```cmd Pasta de C:\GitHub\naldodj-tlpp 13/04/2024 19:17 . 19/03/2024 13:49 .. 05/01/2024 12:22 2.742 .gitattributes 14/11/2023 16:02 83 .gitignore 02/12/2023 20:08 .vscode 05/01/2024 12:05 bin 13/04/2024 19:18 4.121 ChangeLog.txt 27/12/2023 02:05 include 14/11/2023 16:02 27.030 LICENSE.txt 14/11/2023 16:02 0 makepatch.lst 14/11/2

BlackTDN :: OpenSSL :: Usando HTTPS em localhost ( Gerando o Certificado Assinado no Ubuntu via WSL2)

referência da imagem: OpenSSL

Pressupondo que já tenha o WSL2 instalado, funcionando e com uma distribuição linux Ubuntu instalada (caso contrário siga os procedimentos: Instalar o Linux no Windows com o WSL para habilitar a WSL e instalar a sua versão do Ubuntu, ou outra de sua preferência)

1)Atualizando o Ubuntu: Abra o terminal do windows, em modo administrador


1.1) Execute o seguinte comando:

wsl --user root


1.2) No terminal WSL aberto digite:
    
apt-get update && sudo apt-get upgrade
    
isso irá atualizar a distribuição Ubuntu
1.3) Instalando os Pré-Requisitos:
    
    apt install build-essential checkinstall zlib1g-dev -y
    

1.4) Baixando e instalando o OpenSSL:

1.4.1) Execute:
    
cd /usr/local/src/
    

Isso movera o poteiro de diretórios para /usr/local/src/
1.4.2) Acesseopenssl downloads.  Escolha a versão do OpenSSL que deseja baixar e copie o link:
1.4.3) Baixe a versão escolhida digitando:
    
wget https://www.openssl.org/source/openssl-1.1.1u.tar.gz --no-check-certificate
    
1.4.3.1) Obs.: Substitua https://www.openssl.org/source/openssl-1.1.1u.tar.gz pela versão de sua escolha.

1.4.3.2) Extraia o arquivo baixado com o seguinte comando:
    
tar -xf openssl-1.1.1u.tar.gz    
    
1.4.3.3) Navegue até a pasta extraida. Neste caso:
    
cd openssl-1.1.1u
    
1.4.3.4) Instalando o OpenSSL. Execute os seguintes comando para instalar o OpenSSL.
./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib
make
make test
make install
Aguarde finalizar a instalação...
Pressione ENTER
1.4.3.5) Configurando as Bibliotecas Compartilhadas do OpenSSL. Crie um novo arquivo de configuração openssl-1.1.1u.conf para o OpenSSL em /etc/ld.so.conf.d/ :
    
nano /etc/ld.so.conf.d/openssl-1.1.1u.conf
    
e Adicione a seguinte linha ao arquivo.
    
/usr/local/ssl/lib
    
Salve e saia do arquivo (CTRL X Y ENTER). Atualize as configurações com o seguinte comando:
    
ldconfig -v
    
1.4.3.6) Configurando o Binário do OpenSSL.
1.4.3.6.1) Abra a variável de ambiente PATH:
    
nano /etc/environment
    
1.4.3.6.1) Adicione a pasta :/usr/local/bin/openssl à variável PATH. Observe o dois-pontos no início do caminho da pasta. E observe, também, se não existe outra referencia ao OpenSSL (existindo, substitua).  PATH vai ficar com algo parecido com isso: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/ssl/bin"
1.4.3.6.2) Salve e feche o arquivo. Agora atualize o ambiente PATH com o seguinte comando:
    
source /etc/environment
    
1.4.3.6.3) Verifique a versão do OpenSSL:openssl version -a
OpenSSL 1.1.1u  30 May 2023

Pronto, finalizamos a instalação/atualização/configuração do OpenSSL.


2) Agora vamos à geração do Certificado.

2.1) Execute o seguinte comando:
    
cd /usr/local
    
2.1.1) Crie a pasta tmp executando o seguinte comando
    
mkdir tmp
    
2.1.2) Acesse a pasta tmp com:
    
cd tmp
    
2.1.3) Para gerar um certificado com chave RSA-2048 digite o seguinte comando:
    
openssl genrsa -des3 -out rootCA.key 2048
    
2.1.3.1) Informe uma senha para a sua chave RSA-2048
2.1.3.1.1) Confirme a senha:
Com isso, o arquivo rootCA.key será gerado.
2.1.3.2.1) Agora vamos usar a chave gerada para criar um certificado root com validade de aproximadamente 10 anos (3652 dias, você pode trocar o número de dias conforme sua necessidade). Digite:
    
openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 3652 -out rootCA.pem
    
informe a senha usada para criar a chave RSA-2048

2.1.3.2.2) Informe os dados necessários para a geração do certificado root:
Country Name (2 letter code) [AU]:BR
State or Province Name (full name) [Some-State]:ES
Locality Name (eg, city) []:Serra

Organization Name (eg, company) [Internet Widgits Pty Ltd]:Nome da Sua Empresa

Organizational Unit Name (eg, section) []:Tecnologia

Common Name (e.g. server FQDN or YOUR name) []:Nome do Responsavel

Email Address []:email_da_minha_empresa_@minhaempresa.com.br

2.1.3.3) Gerando o Certificado de Domínio: localhost. server.csr.cnf com o seguinte comando:
    
nano server.csr.cnf
    
2.1.3.3.1) Carregue o conteúdo abaixo no arquivo server.csr.cnf (Modificando os valores em negrito conforme sua necessidade)
[req]
default_bits = 2048
prompt = no
default_md = sha256
distinguished_name = dn

[dn]
C=US
ST=RandomState
L=RandomCity
O=RandomOrganization
OU=RandomOrganizationUnit
emailAddress=hello@example.com
CN = localhost                                                                                                            
    
(CTRL X Y ENTER, para salvar)
2.1.3.3.2) Para criar um certificado X509 v3, crie, usando
    
nano v3.ext
    
Um arquivo v3.ext (Atente-se que estamos definindo subjectAltName aqui) e cole o conteúdo abaixo:
    
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = localhost
    
(CTRL X Y ENTER, para salvar)
2.1.3.3.3) Agora, vamos criar uma chave de certificado para localhost usando as definições de configuração armazenadas em server.csr.cnf. Essa chave é armazenada em server.key. Para isso digite:
    
openssl req -new -sha256 -nodes -out server.csr -newkey rsa:2048 -keyout server.key -config <( cat server.csr.cnf )
    
Gerandoserver.csr
2.1.3.3.4) Para finalizar, vamos gerar o arquivo server.key. Para isso digite:
    
openssl x509 -req -in server.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out server.crt -days 3652 -sha256 -extfile v3.ext
    
Gerandoserver.key
informe a senha usada para criar a chave RSA-2048
2.1.3.4.5) Com isso finalizamos a geração dos Certificados.

3)Confiar no certificado SSL root
3.1) Copie os arquivos: rootCA.pem, server.crt e server.key para o destino de utilização, no meu caso o Apache. Neste caso executei:
    
cp rootCA.pem server.crt server.key /mnt/c/Apache24/conf/ssl/
    
3.2) "Confiando" com o Microsoft Edge: Abra o Microsoft Edge e vá em configurações:
3.3) Pesquise por "cert"
3.4) Clique em "Gerenciar Certificados" e Depois em "Autoridades de Certificação Raiz Confiáveis"
3.5) Clique em "Importar"
Clique em Avançar
Selecione o arquivo rootCA.pem (Observe: Todos os arquivos)
arquivo rootCA.pem selecionado. Clique em Avançar.
Informe um local para o armazenamento do Certificado:"Autoridades de Certificação Raiz Confiáveis"

Clique em "Concluir" para finalizar a importação.
confirme a instalação

4) Usando o novo certificado. Exemplo: Apache. Arquivo: httpd-ahssl.conf
5) Testando o novo Certificado no Microsoft Edge: localhost
6)Testando o novo Certificado no Mozilla Firefox : localhost
Vá em configurações
pesquise por cert e clique em "Ver Certificados"
clique em "Importar"
Selecione o arquivo: rootCA.pem
Marque as duas opções acima e clique em "OK"


























































Comentários

Postagens mais visitadas deste blog

BlackTDN :: RLeg ~ Desvendando a Função ParamBox

Para quem precisar desenvolver uma interface de entrada de dados, coisa rápida, e não quer ter aquele trabalhão danado que todos já sabemos, o Protheus tem uma função que ajuda muito, é uma interface semelhante a função Pergunte, porém com muito mais opção de objeto de entrada de dados, alias até colocar o scrollbox desta interface com todos os objetos em outra MsDialog ou Wizard é simples. Vejam o exemplo abaixo, boa sorte! Rleg. //---------------------------------------------------------- // Função exemplo utilizando a função ParamBox() //---------------------------------------------------------- User Function xParamBox() Local aRet := {} Local aParamBox := {} Local aCombo := {"Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"} Local i := 0 Private cCadastro := "xParambox" // ---------------

Protheus :: Chamando Funções do Menu Diretamente e sem a Necessidade de Login

Ferne$ perguntou: "...é possível abrir alguma rotina do sistema sem solicitar login ao usuário, como por exemplo a rotina MATA010..." Sim Ferne$, é possível sim. Abaixo um Exemplo para a Chamada à função MATA010 sem a necessidade de Login no sistema. #INCLUDE "PROTHEUS.CH" #INCLUDE "TBICONN.CH" /*/ Funcao: MATA010Ex Data: 30/04/2011 Autor: Marinaldo de Jesus Descricao: Executar a Funcao MATA010 diretamente sem a necessidade de LOGIN no Protheus Sintaxe: 1 ) U_MATA010Ex ( Chamada diretamente na Tela de Entrada do Sistema ) ; ou 2 ) totvsclient.exe -q -p=u_MATA010Ex -a=01;01 -c=rnp_local -e=rnp -m -l ( Chamada Via Linha de Comando ) /*/ User Function MATA010Ex( cEmpFil ) Local aEmpFil Local bWindowInit := { || __Execute( "MATA010()" , "xxxxxxxxxxxxxxxxxxxx" , "MATA010" , "SIGAFAT" , "SIGAFAT", 1 , .T. ) } Local cEmp Local cFil Local cMod Local cModName := "SIGAFAT" DEFA

BlackTDN :: Customizando a interface de Login no Protheus e by You

A publicação “ BlackTDN :: By You e sua nova tela de login ”  de nosso amigo OBona deu o que falar e, em função disso, esse que a muito não vos escreve resolveu criar uma versão onde será possível personalizar, “por completo”, a tela de login no Protheus/by You. Considerando que OBona já havia “mapeado, identificado e customizado” as imagens peguei-as emprestadas para o exemplo que se segue: O primeiro passo para a customização “total” da interface de login do Protheus/by You será implementar o “Ponto de Entrada” ChgPrDir (Diretório de impressão) . Usaremos esse PE juntamente como programa U_FindMsObject.prg (apresentado pela primeira vez em: Protheus :: ADVPL : The Container : Presents Pandora's box ). Diferente do exemplo proposto por OBona, que substitui, durante o processo de compilação, as imagens padrões do sistema (excluindo-as) por imagens customizadas (com o mesmo nome) este novo exemplo mantém, no RPO, as imagens padrões adicionando novas imagens customizadas que serã