GithubHelp home page GithubHelp logo

scintill / macos-server-apns-certs Goto Github PK

View Code? Open in Web Editor NEW
17.0 17.0 6.0 63 KB

This repository is about getting APNs (Apple Push Notification service) certificates for, e.g., push email notifications on iOS.

Makefile 98.62% Shell 1.38%

macos-server-apns-certs's People

Contributors

scintill avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

macos-server-apns-certs's Issues

MacOS request-body base64: invalid option -- w

Hi everyone, for those who have some problems trying make request-body and receive this error:

base64: invalid option -- w

You must change in Makefile where: "base64 -w68..." for "base -b 68..." and that's all. And maybe you should consider install shuf command from brew, using brew install coreutils.

I hope this could be helpfull to anyone.

PD: I'm using MacOS 11.5.2

Not working anymore ?

I'm pretty sure that I did everything right, it was working previously, but now I consistently receive that answer from apple :

<key>Response</key>
    <dict>
        <key>Status</key>
        <dict>
            <key>ErrorDescription</key>
            <string>Invalid account name and password. Please verify the account name - password</string>
            <key>ErrorMessage</key>
            <string>Account Name - Password invalid.</string>
            <key>ErrorCode</key>
            <integer>-80004</integer>
        </dict>
    </dict>

Is it me or them ?

NB : after typing my password I had to hit Return before Ctrl-d ctrl-d otherwise nothing happened.

Notes on renewals

Renewal isn't strictly necessary, as you can manually revoke old certs in the portal and/or create new ones with the current codebase. But here are some notes I have, in case someone wants to automate it:

  • Similar to what is already implemented
  • POST to /pushcert/caservice/renew instead of /pushcert/caservice/new
  • A key called CertificateSerialNumber is added in each sub-dict of CertRequestList, and has the lowercase hex-encoded serial number of the previous cert for the given service
    • e.g.
                                <key>CertRequestNo</key>
                                <integer>0</integer>
                                <key>CertificateSerialNumber</key>
                                <string>7585f4f77e9a12df</string>
                                <key>Description</key>
                                <string>DU182 - apns:com.apple.calendar</string>

hashy seg fault ?

Hi,

Thanks for that tool !

I'm tried to make it run and got the following output :

% make request-body
make -C hashy hashy
clang -g -o hashy hashy.c
make -C hashy arc4zero.dylib
clang -dynamiclib -o arc4zero.dylib arc4zero.c
echo "" | env DYLD_INSERT_LIBRARIES=./hashy/arc4zero.dylib hashy/hashy 0 > PushCertCertificateChain
dlh = 0x7f962f405800
refpointer = 0x10e7e9251
image = 0x10e7ceb69
/bin/sh: line 1: 33790 Done                    echo ""
     33791 Segmentation fault: 11  | env DYLD_INSERT_LIBRARIES=./hashy/arc4zero.dylib hashy/hashy 0 > PushCertCertificateChain
make: *** [PushCertCertificateChain] Error 139

Please note that I copied the necessary bundles found in server.app one by one by trial and error (I don't want to 'install' the whole thing, just the necessary tools and libraries) and ended up with the following files :

/Applications/Server.app
/Applications/Server.app/Contents
/Applications/Server.app/Contents/ServerRoot
/Applications/Server.app/Contents/ServerRoot/usr
/Applications/Server.app/Contents/ServerRoot/usr/lib
/Applications/Server.app/Contents/ServerRoot/usr/lib/libservermgrcommon.dylib
/Applications/Server.app/Contents/ServerRoot/usr/share
/Applications/Server.app/Contents/ServerRoot/usr/share/servermgrd
/Applications/Server.app/Contents/ServerRoot/usr/share/servermgrd/bundles
/Applications/Server.app/Contents/ServerRoot/usr/share/servermgrd/bundles/servermgr_certs
/Applications/Server.app/Contents/ServerRoot/usr/share/servermgrd/bundles/servermgr_certs.bundle
/Applications/Server.app/Contents/ServerRoot/usr/share/servermgrd/bundles/servermgr_certs.bundle/Contents
/Applications/Server.app/Contents/ServerRoot/usr/share/servermgrd/bundles/servermgr_certs.bundle/Contents/_CodeSignature
/Applications/Server.app/Contents/ServerRoot/usr/share/servermgrd/bundles/servermgr_certs.bundle/Contents/_CodeSignature/CodeResources
/Applications/Server.app/Contents/ServerRoot/usr/share/servermgrd/bundles/servermgr_certs.bundle/Contents/MacOS
/Applications/Server.app/Contents/ServerRoot/usr/share/servermgrd/bundles/servermgr_certs.bundle/Contents/MacOS/servermgr_certs
/Applications/Server.app/Contents/ServerRoot/usr/share/servermgrd/bundles/servermgr_certs.bundle/Contents/Resources
/Applications/Server.app/Contents/ServerRoot/usr/share/servermgrd/bundles/servermgr_certs.bundle/Contents/Resources/servermgr_certs.html
/Applications/Server.app/Contents/ServerRoot/usr/share/servermgrd/bundles/servermgr_certs.bundle/Contents/Info.plist
/Applications/Server.app/Contents/ServerRoot/usr/share/servermgrd/bundles/servermgr_certs.bundle/Contents/version.plist
/Applications/Server.app/Contents/ServerRoot/System
/Applications/Server.app/Contents/ServerRoot/System/Library
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/SMDClient.framework
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/SMDClient.framework/Versions
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/SMDClient.framework/Versions/A
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/SMDClient.framework/Versions/A/_CodeSignature
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/SMDClient.framework/Versions/A/_CodeSignature/CodeResources
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/SMDClient.framework/Versions/A/Resources
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/SMDClient.framework/Versions/A/Resources/en.lproj
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/SMDClient.framework/Versions/A/Resources/en.lproj/InfoPlist.strings
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/SMDClient.framework/Versions/A/Resources/SMDClientNotes
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/SMDClient.framework/Versions/A/Resources/Info.plist
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/SMDClient.framework/Versions/A/Resources/version.plist
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/SMDClient.framework/Versions/A/SMDClient
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/SMDClient.framework/Versions/Current
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Resources
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/_CodeSignature
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/_CodeSignature/CodeResources
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/ODReplicaConfiguration.plist
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/English.lproj
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/English.lproj/LocalizableNetworkInterfaces.strings
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/English.lproj/Localizable.strings
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/English.lproj/InfoPlist.strings
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/zh_CN.lproj
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/zh_CN.lproj/LocalizableNetworkInterfaces.strings
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/zh_CN.lproj/Localizable.strings
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/zh_CN.lproj/InfoPlist.strings
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/sshhelper
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/Dutch.lproj
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/Dutch.lproj/LocalizableNetworkInterfaces.strings
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/Dutch.lproj/Localizable.strings
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/Dutch.lproj/InfoPlist.strings
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/German.lproj
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/German.lproj/LocalizableNetworkInterfaces.strings
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/German.lproj/Localizable.strings
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/German.lproj/InfoPlist.strings
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/ODReplicaToMasterPromotionConfiguration.plist
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/BridgeSupport
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/BridgeSupport/ServerFoundation.bridgesupport
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/ko.lproj
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/ko.lproj/LocalizableNetworkInterfaces.strings
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/ko.lproj/Localizable.strings
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/ko.lproj/InfoPlist.strings
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/xskeychaintool
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/ODMasterConfiguration.plist
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/Spanish.lproj
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/Spanish.lproj/LocalizableNetworkInterfaces.strings
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/Spanish.lproj/Localizable.strings
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/Spanish.lproj/InfoPlist.strings
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/zh_TW.lproj
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/zh_TW.lproj/LocalizableNetworkInterfaces.strings
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/zh_TW.lproj/Localizable.strings
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/zh_TW.lproj/InfoPlist.strings
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/French.lproj
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/French.lproj/LocalizableNetworkInterfaces.strings
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/French.lproj/Localizable.strings
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/French.lproj/InfoPlist.strings
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/Japanese.lproj
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/Japanese.lproj/LocalizableNetworkInterfaces.strings
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/Japanese.lproj/Localizable.strings
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/Japanese.lproj/InfoPlist.strings
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/Info.plist
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/ODStandaloneConfiguration.plist
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/version.plist
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/ODConnectedConfiguration.plist
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/Italian.lproj
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/Italian.lproj/LocalizableNetworkInterfaces.strings
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/Italian.lproj/Localizable.strings
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/Resources/Italian.lproj/InfoPlist.strings
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/A/ServerFoundation
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/Versions/Current
/Applications/Server.app/Contents/ServerRoot/System/Library/PrivateFrameworks/ServerFoundation.framework/ServerFoundation

Do you think I'm still missing some library ? Or is it something else ? I used the Server.app version 5.4 (found somewhere on the internet).

Exception from DS: Invalid Session

Hello!

First of all, thank you for this amazing project.

I'm trying to grab APNs for a dovecot server with xpasd plugin. I followed the readme step-by-step. When I execute the curl request, I'm getting an error from Apple: Invalid Session

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Response</key>
    <dict>
        <key>Status</key>
        <dict>
            <key>ErrorDescription</key>
            <string>Exception from DS</string>
            <key>ErrorMessage</key>
            <string>Invalid Session</string>
            <key>ErrorCode</key>
            <integer>-20358</integer>
        </dict>
    </dict>
    <key>Header</key>
    <dict>
        <key>ClientIPAddress</key>
        <string>1</string>
        <key>LanguagePreference</key>
        <string>1</string>
        <key>TransactionId</key>
        <string>1</string>
        <key>ClientOSVersion</key>
        <string>2.1</string>
        <key>ClientOSName</key>
        <string>MAC OSX</string>
        <key>ClientApplicationName</key>
        <string>XServer</string>
        <key>ClientApplicationCredential</key>
        <string>1</string>
    </dict>
</dict>
</plist>

Do you have any clue of what could be happening?

two-factor apple id

I'm trying this today as my certs are about to expire
BUT
i'm getting messages my password is invalid.

so i thought, ofcourse....i have two factor auth enabled (can't be disabled)
so i made a special APP password and used that, but still i'm getting password is invalid messages.

anyone tried this? with 2fa>

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.