AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-1030071

StrangerDanger's questions

Martin Hope
StrangerDanger
Asked: 2024-08-23 00:17:55 +0800 CST

Qual armazenamento do sistema e local de armazenamento eu uso?

  • 5

Espero que esta pergunta seja adequada para falha do servidor. Ele contém algum código, mas não acho que se encaixe muito bem no Stack Overflow.

Eu tenho um programa Python que salva um certificado autoassinado no cache "Autoridades de certificação raiz confiáveis" do "Computador local". Mas o problema é que ele não está sendo salvo na loja correta (não tenho certeza se “loja” é a terminologia correta).

Vejo dois caminhos diferentes para o que presumi ser a mesma loja, mas aparentemente não são. A Microsoft fez um excelente trabalho ao tornar isso confuso.

insira a descrição da imagem aqui

Você pode ver que o primeiro caminho é Local Computer\Trusted Root Certification Authorities\Certificates. Nota: isto é aberto no certlmprograma (Gerenciar certificados de computador).

E o segundo caminho é Console Root\Certificates (Local Computer)\Trusted Root Certification Authorities\Certificates. Nota: Isso é aberto criando um novo snap-in de Certificados no MMC e escolhendo "Conta de computador".

Meu programa está salvando meu certificado no primeiro caminho, mas preciso que ele vá para o segundo caminho. É isso. Para conseguir isso, acho que só preciso escolher o "Local da Loja" correto. Estou usando este site como referência:

https://learn.microsoft.com/en-us/windows/win32/seccrypto/system-store-locations

Meu código é bem simples:

def save_cert_to_store(cert_to_save: str) -> None:
    cert_byte = win32crypt.CryptStringToBinary(
        cert_to_save,
        CRYPT_STRING_BASE64HEADER
    )[0]

    store = win32crypt.CertOpenStore(
        CERT_STORE_PROV_SYSTEM,
        0,
        None,
        CERT_SYSTEM_STORE_LOCAL_MACHINE | CERT_STORE_MAXIMUM_ALLOWED_FLAG,
        "Root"
    )

    try:
        store.CertAddEncodedCertificateToStore(
            X509_ASN_ENCODING,
            cert_byte,
            CERT_STORE_ADD_REPLACE_EXISTING
        )
    except Exception as e:
        print(e)
    finally:
        store.CertCloseStore(CERT_CLOSE_STORE_FORCE_FLAG)

Você pode ver que o armazenamento do sistema que estou usando CERT_SYSTEM_STORE_LOCAL_MACHINEe o local do armazenamento é "Root". Ao executar isso, ele salva em Local Computer\Trusted Root Certification Authorities\Certificates, o que eu não quero.

Se eu alterar "Root" para "Trust", ele será salvo em Console Root\Certificates (Local Computer)\Enterprise Trust\Certificates, que é o armazenamento raiz correto, mas não o caminho correto.

Alterar "Root" para "CA" salva-o em Console Root\Certificates (Local Computer)\Intermediate Certification Authorities\Certificates. Novamente, armazenamento raiz correto, mas caminho errado.

Então, minha pergunta é: qual é a combinação correta de armazenamento/local de armazenamento do sistema a ser usada para salvar isso no caminho correto, que é Console Root\Certificates (Local Computer)\Trusted Root Certification Authorities\Certificates? Estou executando meu programa como administrador, então não acredito que seja um problema de permissão. A menos que a Microsoft bloqueie isso totalmente sem aviso prévio.

windows
  • 1 respostas
  • 38 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve