срок действия самозаверяющего сертификата для приложений android

Мне было интересно, можно ли сделать самозаверяющий сертификат
на моем сервере, так что мое приложение может общаться через ssl (я знаю
как сделать так, чтобы мое приложение доверяло самозаверяющему сертификату, чтобы
сертификат не истечет через 1 год, но, возможно, через 5, так как я не
требуется вручную обновить многие приложения, которые будут использовать ssl.

Есть ли способ сделать самозаверяющий сертификат, который не
истекает в течение 1 года? Если нет, будет ли какой-то смысл в принятии
мое приложение скачать новый сертификат, если определенная дата прошла?
Спасибо.

1 ответ

  1. При создании/подписании сертификата вы можете установить любое время истечения срока действия сертификата.

    Вот как создать самозаверяющий SSL-сертификат с помощью Ruby. Я лично предпочитаю использовать привязку языка при разговоре с OpenSSL, так как CLI немного сложно использовать 🙂

    require "openssl"
    
    keypair = OpenSSL::PKey::RSA.new(2048)
    File.open("/tmp/key.pem", "w+") do |f|
      f.write ca_keypair.to_pem(OpenSSL::Cipher.new("AES-128-CBC"), "my passphrase")
    end
    
    cert = OpenSSL::X509::Certificate.new
    cert.not_before = Time.now
    cert.subject = OpenSSL::X509::Name.new([
        ["C", "NO"],
        ["ST", "Oslo"],
        ["L", "Oslo"],
        ["CN", "August Lilleaas"]
      ])
    cert.issuer = cert.subject
    cert.not_after = Time.now + 1000000000 # 40 or so years
    cert.public_key = keypair.public_key
    
    File.open("/tmp/cert.pem", "w+") do |f|
      f.write cert.to_pem
    end